标签:大数
原题http://acm.hdu.edu.cn/showproblem.php?pid=1047
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12692 Accepted Submission(s): 3214
1 123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0
370370367037037036703703703670
#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <malloc.h> #include <limits.h> #include <ctype.h> #include <string.h> #include <string> #include <algorithm> #include <iostream> #include <queue> #include <deque> #include <stack> #include <vector> #include <set> #include <map> using namespace std; #define MAXN 500 + 10 char a[MAXN],b[MAXN],c[MAXN],sum[MAXN]; //int count; int mark; void jia(char sum[],char a[]){ int i,j,z,k,count; k = 0; z = 0; for(i=strlen(sum)-1,j=strlen(a)-1;i>=0||j>=0;i--,j--){ if(i >= 0) z+=sum[i]-'0'; if(j >= 0) z+=a[j]-'0'; c[k++] = z%10+'0'; z = z/10; } if(z){ c[k++] = '1'; } c[k] = '\0'; i = 0; count = k; // count = 0; for(--k;k>=0;k--){ sum[i++] = c[k]; // count++; } sum[i] = '\0'; if(mark == 0){ for(i=0;i<count;i++){ if(i != count-1){ printf("%c",sum[i]); } else{ printf("%c\n",sum[i]); } } } } int main(){ int T,i,cas; //int mark; while(~scanf("%d",&T)){ for(cas=1;cas<=T;cas++){ mark = 1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); memset(sum,0,sizeof(sum)); if(cas > 1){ printf("\n"); } while(mark != 0){ scanf("%s",a); if(strcmp(a,"0") == 0){ mark = 0; jia(sum,a); } else{ jia(sum,a); } } } } return 0; }
标签:大数
原文地址:http://blog.csdn.net/zcr_7/article/details/39024099