题目:458. 可怜的小猪 - 力扣(LeetCode)
数学问题。
尝试次数 times = minutesToTest / minutesToDie
每只猪可以承载的数据量 bit = times + 1
答案 ret 就是 bit ^ ret >= buckets 时,ret 的最小值。
特殊的,注意 buckets 为 1 的情况。
class Solution {
public:
int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
if (buckets <= 1) {
return 0;
}
int times = minutesToTest / minutesToDie;
if (times < 1) {
return buckets - 1;
}
int bit = times + 1;
int t = bit;
int ret = 1;
while (t < buckets) {
ret++;
t *= bit;
}
return ret;
}
};