您的位置:首页 > 其它

搜索算法2之1008

2016-04-14 10:47 169 查看
1 题目编号:1008

2 题目内容:

Problem Description

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>

 

Author

Zhousc

 

Source

ECJTU 2008 Summer Contest

 

3 解题思路形成过程:在最坏的情况下,在1到m间,最多只要猜log2(m)+1(取整)次,所以易知==>m=2^n-1.即猜n次,可以猜到的最大数的数为2^n-1.也可认为,在数1到2^n-1间,都可以在n次内猜出来。

4 代码:

#include<iostream>

#include<cmath>

using namespace std;

int main()

{
int n, t;
while (cin >> t)
{
if (t == EOF)
break;
while (t--&&cin >> n)
{
cout << (int)pow(2, n) - 1 << endl;
}
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  搜索算法