大数求和(hdu 1047)
Integer?InquiryTime?Limit:?2000/1000?MS?(Java/Others)????Memory?Limit:?65536/32768?K?(Java/Others) Problem?Description One?of?the?first?users?of?BIT's?new?supercomputer?was?Chip?Diller.?He?extended?his?exploration?of?powers?of?3?to?go?from?0?to?333?and?he?explored?taking?various?sums?of?those?numbers.? ? ? Input The?input?will?consist?of?at?most?100?lines?of?text,?each?of?which?contains?a?single?VeryLongInteger.?Each?VeryLongInteger?will?be?100?or?fewer?characters?in?length,?and?will?only?contain?digits?(no?VeryLongInteger?will?be?negative).? ? ? Output Your?program?should?output?the?sum?of?the?VeryLongIntegers?given?in?the?input.? ? ? Sample?Input 1??1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678900 ? ? Sample?Output 370370367037037036703703703670 ? ? ? #include<stdio.h> #include<string.h> #define N 110 int main() { int t,sum[N],rnum[N],len; char num[N]; scanf("%d",&t); while(t--) { memset(num,' ',sizeof(num)); memset(sum,sizeof(sum)); while(scanf("%s",num)!=EOF) { if(strcmp(num,"0")==0) { break; } memset(rnum,sizeof(rnum)); len = strlen(num); for(int i=0;i<len;i++) { rnum[i] = num[len-1-i]-'0'; } memset(num,sizeof(num)); for(int i=0;i<N;i++) { sum[i] += rnum[i]; if(sum[i]>9) { sum[i] -= 10; sum[i+1] ++; } } } int cn = 0; for(int i=N-1;i>=0;i--) { if(sum[i]) { cn = i; break; } } for(int j=cn;j>=0;j--) printf("%d",sum[j]); printf("n"); if(t!=0) { printf("n"); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |