题目链接:点击打开链接
Problem Description
A有1数m,B来猜.B每猜一次,A就说太大了,太小或对了。 问B猜n次可以猜到的最大数。
Input
第1行是整数T,表示有T组数据,下面有T行 ,每行一个整数n (1 ≤ n ≤ 30)
Output
猜n次可以猜到的最大数
Sample Input
2 1 3
Sample Output
1 7
思路:用二分法反着求最大值
已知最小值为1,设最大值为max,计算n次求出最大值,所以n=log2(max+1);
化简之后max=pow(2,n)-1;
code:
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int max=pow(2,n)-1;
printf("%d\n",max);
}
return 0;
}
//完美的代码