HDU1592(递推+大数处理)
Half of and a HalfTime Limit: 1000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)
Problem 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
?
Sample Output
?
#include<iostream> int main() { ?int n,i,j,temp; ?int len; ?while(scanf("%d",&n)!=EOF) ?{ ??memset(a,sizeof(a)); ??len=0; ??a[len]=1; ??for(i=1;i<=n;i++) ??{ ???temp=0; ???for(j=0;j<=len;j++) ???{ ????if(j==0) ?????a[j]=(a[j]+0.5)*2; ????else a[j]=a[j]*2+temp; ????temp=a[j]/10000; ????a[j]=a[j]%10000; ???} ???if(temp) ???{ ????len++; ????a[len]=temp; ???} ??} ??printf("%d",a[len]); ??for(i=len-1;i>=0;i--) ???printf("%04d",a[i]); ??printf("n"); ?? ?} ?return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |