Gardon bought many many chocolates from the A Chocolate Market (ACM). When he was on the way to meet Angel, he met Speakless by accident.
"Ah, so many delicious chocolates! I‘ll get half of them and a half!" Speakless said.
Gardon went on his way, but soon he met YZG1984 by accident....
"Ah, so many delicious chocolates! I‘ll get half of them and a half!" YZG1984 said.
Gardon went on his way, but soon he met Doramon by accident....
"Ah, so many delicious chocolates! I‘ll get half of them and a half!" Doramon said.
Gardon went on his way, but soon he met JGShining by accident....
"Ah, so many delicious chocolates! I‘ll get half of them and a half!" JGShining said.
.
.
.
After had had met N people , Gardon finally met Angel. He gave her half of the rest and a half, then Gardon have none for himself. Could you tell how many chocolates did he bought from ACM?
Input contains many test cases.
Each case have a integer N, represents the number of people Gardon met except Angel. N will never exceed 1000;
For every N inputed, tell how many chocolates Gardon had at first.
1 #include<cstdio>
2 #include<cstring>
3 #include<algorithm>
4 using namespace std;
5 struct node
6 {
7 int a[1100];
8 }s[1010];
9 int main()
10 {
11 int i,j,t,n;
12 s[0].a[0]=1;
13 for(i=1;i<=1000;i++)
14 {
15 int r=0;
16 for(j=0;j<1000;j++)
17 {
18 s[i].a[j]=s[i-1].a[j]*2+r;
19
20 r=s[i].a[j]/10;
21
22 s[i].a[j]%=10;
23
24 }
25 t=0;
26 while(s[i].a[t]+1>9)
27 {
28 s[i].a[t]=0;
29 t++;
30 }
31 s[i].a[t]+=1;
32 }
33 while(scanf("%d",&n)!=EOF)
34 {
35 for(i=999;i>=0,s[n].a[i]==0;i--);
36 for(j=i;j>=0;j--)
37 printf("%d",s[n].a[j]);
38 printf("\n");
39
40 }
41 return 0;
42 }