1008 猜数字
题意:给定一个数m,在n次猜测中,问能够猜到的最大数。
思路:对于每一个数m,在n次之后,总能够猜到,所以对于这n次猜测中,最大数与最小数之间,全部数字都是可以猜到的,而对于每一种的猜测情况,总有太大或太小两种情况,如果相等则终止,这样就形成了一个二叉树,其中最大数为2^n-1。
感想:题目很简短,可是在题意理解上却并不容易,要让n次猜测,全部猜到最大数到最小数之间所有数字,其实就是对这些连续数遍历一遍,明白这一点,基本上问题就能够解决了。呃~!附上pow()函数的一些知识,以前一直没搞明白它的返回值!
原型:在TC2.0中原型为extern float pow(float x, float y); ,而在VC6.0中原型为double pow( double x, double y );
功能:计算x的y次幂。
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
返回类型:double型,int,float会给与警告!
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
int main(){
int T,n;
cin>>T;
while(T--){
cin>>n;
cout<<(int)(pow(2,n)-1)<<endl;
}
return 0;
}