要猜到最大的数字m,也就是说,在1到m间的每一个数,你都能在n次内把它猜出来!http://hi.baidu.com/xiao%5Fyu%5Ffeng/blog/item/11ab800ed1a7a3236159f334.html
所以说在最坏的情况下,在1到m间,你最多只要猜log2(m)+1(取整)次,所以易知==>m=2^n-1.即猜n次,你能猜到的最大的数为2^n-1.我们也可认为,在数1到2^n-1间,我们都可以在n次内猜出来,如果大于这个数,n次内我们就哟可能猜不来了。例如1--7间,我们至少要猜3次猜可以
#include<stdio.h> int main() { int t, n, m; scanf("%d", &t); while (t--) { scanf("%d", &n); m = 1; while (n--) m <<= 1; printf("%d\n", m-1); } return 0; }