hdu 2178 猜数字

要猜到最大的数字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;
}

原文地址:https://www.cnblogs.com/nanke/p/2120759.html