D - Half of and a Half 大数

时间:2023-03-09 06:41:26
D - Half of and a Half  大数
D - Half of and a Half

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

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

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;

Output

For every N inputed, tell how many chocolates Gardon had at first.

Sample Input

2

Sample Output

7
 #include<cstdio>
#include<string.h>
using namespace std;
int ans[][];
int main()
{
//memset(ans,0,sizeof(ans));
int n,i,j;
while(scanf("%d",&n)!=EOF)
{ //i=300;
memset(ans,,sizeof(ans));
ans[]=;
while(n--)
{
int c=;
int s=; for(i=;i>=;i--)
{
if(i==)
s=ans[i]*++c;
else s=ans[i]*+c;
ans[i]=s%;
c=s/; }
}
for(i=;i<=;i++) if(ans[i]!=) break;
j=i;
for(j=i;j<=;j++) printf("%d",ans[j]);
printf("\n");
}
return ;
}