标签:大数
原题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