题目大意:
A有一数m让B去猜,B猜一次A就给其提示“太大了”或“太小了”或“正确”。
问B猜n次可以猜到的最大数。
解题思路:
这道题的题意如果仅仅靠自己看的话我觉得很难让人理解,我就怎么也看不懂,我就觉得B猜1000,10000也行,然后去百度上查了一下,猜知道题目问的是B在猜n次保证能猜到m的情况下m的最大值。在最坏的情况下,我们最多只要猜log2(m)+1次,因此我们能猜到的最大数就是2n-1,这样就简单了。
感想:
这题代码虽然特别简单,但是其中考察的读题能力确是很难啊,真心没读懂。
代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int time, n;
cin >> time;
while (time--)
{
cin >> n;
cout << (int)pow(2, n) - 1 << endl;
}
return 0;
}