A有1數m,B來猜.B每猜一次,A就說"太大","太小"或"對了" 。 <br>問B猜n次可以猜到的最大數。 <br>
Input
第1行是整數T,表示有T組數據,下面有T行 <br>每行一個整數n (1 ≤ n ≤ 30) <br>
Output
猜n次可以猜到的最大數<br>
Sample Input
2<br>1<br>3
Sample Output
1<br>7<br>
1.題目編號:1008
2.簡單題意:猜數字,給出猜的次數,輸出猜的最大數字。
3.解題思路形成:就如同數學上的求根,用了二分法,n=1時,m=(1+m)/2,m=1;n=2時,m=((1+m)/2+1+m)/2,m=3......n=3時,m=7,....所以n=N時,m=2^N-1;
4.感想:開始並不懂,只是看到n=1,m=1;n=3,m=7;看到形式上是m=2^n-1;後來心虛的百度了下,,,有的沒看懂,有的說出了二分法,然後就試了試,結果就對了!
5.AC代碼:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int t,n;
while(cin >> t)
{
while(t--)
{
cin >> n;
cout << (int)pow(2,n)-1 << endl;
}
}
return 0;
}