题目传送门
题目大意:
有 个瓶子,有一个瓶子里面有毒,现在有无数只小白鼠可以进行试验,请问最少需要用多少只进行试验。
解题思路:
这道题目要求用最少的小白鼠进行实验,因此,我们要用二进制的思路,第一只小白鼠喝二进制末尾为 的瓶子,第二只小白鼠喝二进制倒数第二位为
的瓶子,以此类推,便可求出正确答案。
完整代码
#include <stdio.h>
int main()
{
int t;
scanf("%d", &t);
for (int i = 1; i <= t; i++) {
long long n;
scanf("%lld", &n);
n++;
if (n == 1)
printf("Case %d: 0\n", i);
else
{
long long s = 1, j;
for (j = 0; s < n; j++) s *= 2;
printf("Case %d: %lld\n", i, j);
}
}
return 0;
}