首页 > ACM题库 > HDU-杭电 > hdu 2178 猜数字-高精度-[解题报告]C++
2013
12-30

hdu 2178 猜数字-高精度-[解题报告]C++

猜数字

问题描述 :

A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" 。
问B猜n次可以猜到的最大数。

输入:

第1行是整数T,表示有T组数据,下面有T行
每行一个整数n (1 ≤ n ≤ 30)

输出:

第1行是整数T,表示有T组数据,下面有T行
每行一个整数n (1 ≤ n ≤ 30)

样例输入:

2
1
3

样例输出:

1
7

点击打开链接

在最坏的情况下,在1到m间,你最多只要猜log2(m)+1(取整)次,所以易知==>m=2^n-1.即猜n次,你能猜到的最大数的数为2^n-1.我们也可认为,在数1到2^n-1间,我们都可以在n次内猜出来。


#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"math.h"
#include"queue"
#define N 31
typedef __int64 int64;
using namespace std;
int main()
{
	int T;
	int n;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		printf("%d\n",(int)pow(2,n)-1);
	}
	return 0;
}

解题转自:http://blog.csdn.net/yangyafeiac/article/details/8827190


  1. 很高兴你会喜欢这个网站。目前还没有一个开发团队,网站是我一个人在维护,都是用的开源系统,也没有太多需要开发的部分,主要是内容整理。非常感谢你的关注。