hdu 猜数字

猜数字

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 169    Accepted Submission(s): 139
 
Problem Description
A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" 。 问B猜n次可以猜到的最大数。
 
Input
第1行是整数T,表示有T组数据,下面有T行 每行一个整数n (1 ≤ n ≤ 30)
 
Output
猜n次可以猜到的最大数
 
Sample Input
2
1
3
 
Sample Output
1
7
 
Author
Zhousc
 
Source
ECJTU 2008 Summer Contest
 
Recommend
lcy

分析:逆向二分

猜1次->1

猜2次->(1*2+1)

猜3次->(1*2+1)*2+1

以此类推

猜n次->2^(n-1)+...+2+1=2^n-1

#include<cstdio>
int main()
{
    int T,n;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        printf("%d\n",(1<<n)-1);
    }
    return 0;
}

 

posted @ 2012-08-31 22:19  YogyKwan  阅读(135)  评论(0编辑  收藏  举报