描述
有1000个桶,有且仅有一个桶里面装了毒药,其他的都装了水。这些桶从外面看上去完全相同。如果一只猪喝了毒药,它将在15分钟内死去。在一个小时内,至少需要多少只猪才能判断出哪一个桶里装的是毒药呢?
思考回答这个问题,随后请设计实现一个算法去处理更一般的情况。
样例
- 样例
1:
输入
: buckets
= 1000; minutesToDie
= 15; minutesToTest
= 60
输出
: 5
挑战
假如一共有 n 个桶,只有一个桶装了毒药。一只猪将在喝完毒药 m 分钟后死去。你需要多少只猪才能在 p 分钟内找出那个装毒药的桶呢?
解析
这个好像是编程界的一个经典问题了
poorPigs = function (buckets
, minutesToDie
, minutesToTest
) {
num
=minutesToTest
/minutesToDie
+1;
if(buckets
==1) return 0;
pig
=1;
while(Math
.pow(num
,pig
)<buckets
)pig
++;
return pig
;
}
运行结果