题目:猜数字
题意:A有1数m,B来猜.B每猜一次,A就说;太大或太小,当数字正确是回答对了
问B猜n次可以猜到的最大数
思路:在最坏的情况下,在1到m间,最多只要猜log2(m)+1次(二分),所以有m=2^n-1.即猜n次,能猜到的最大数的数为2^n-1.
上面所说的也可以被理解为,在数1到2^n-1间,都可以在n次内猜出来。
感想:运用到二分法,
代码:
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
int n,t,a;
cin>>t;
while(t--)
{
cin>>n;
a=pow(2.0,n)-1;
cout<<a<<endl;
}
return 0;
}