首页 > 代码库 > GDUFE ACM-1038

GDUFE ACM-1038

题目:http://acm.gdufe.edu.cn/Problem/read/id/1038

 

抢糖果

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

  今天计实班的生活委员心情大好,在永诚超市狂购了好多好多糖果,好开心~o(∩_∩)o 
刚付完款,她就遇到吃货吖杰,被他剥削了一半的糖果\("▔□▔)/还好此货良心未泯,又还给了生活委员糖果。。。一颗,就厚着脸皮走了(︶︿︶)
刚踏出超市大门,她就遇到了坑货吟姐,又被剥削了一半!还好吟姐够慈善,又还给她一颗o_O
之后她又遇到枫兄,明哥,谭叔,吖虾,大婶,小白,媳妇......好衰,JS班才多少人,这一路她就遇到了n个,每次都被夺走手上一半的糖果,又拿回一颗。
当她回到宿舍时,手上只剩4颗糖果!泪奔了o(>﹏<)o,她可是一颗都没吃呢!话说一开始买了多少糖果她都不知道额,你能帮她算下么?

Input:

输入数据第一行是一个整数t,表示有t个测试实例,每个实例一行,每行有一个整数n(0<n<=30),表示遇到的人数。

Output:

对于每个测试实例,请输出最初糖果的数量,每个实例输出占一行。

Sample Input:

6
4
3
2
1
5
29

Sample Output:

34
18
10
6
66
1073741826


思路:从结果倒推,手上的-1再乘2,循环n次

难度:灰常灰常简单

代码:
 1 #include<stdio.h>
 2 int main()
 3 {
 4     long long int t,i,j,a,n;
 5     while(scanf("%lld",&t)!=EOF)
 6     {
 7         for(i=1;i<=t;i++)
 8         {
 9             scanf("%lld",&n);
10             a=4;
11             for(j=0;j<n;j++)
12                 a=(a-1)*2;
13                 printf("%lld\n",a);
14         }
15     }
16     return 0;
17 }

 

GDUFE ACM-1038