搜索算法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;
}
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;
}
相关文章推荐
- 搜索0之1001
- 搜索算法1之1002
- 使用栈和队列实现迷宫路径查找算法
- ‘聪明的搜索算法’ A*算法
- 2004上半年软设上午试题第64、65类比二分搜索算法
- Cpp环境【GRYZ2015】【Vijos3150】 足球联赛
- 搜索算法(一) 2018-2-28
- IDA*对A*的改进
- Jump Search-跳跃搜索算法
- VC++源码分析 - 中国象棋源码分析
- 从零开始学算法(三)搜索算法(一)(深度优先搜索)之地图迷宫
- alpha-beta剪枝法
- 算24点(DFS)
- MITx - 6.00.1x 笔记(6) Algorithmic Complexity
- MOOC人工智能原理学习笔记3——无信息搜索
- 【BZOJ3990】【SDOI2015】排序
- 搜索算法14之总结
- 搜索算法13之1012
- 搜索算法12之1015
- 搜索算法11之1016