HDOJ 1002.A+B Problem II 答案
阿新 • • 發佈:2019-02-07
#include<cstdio> #define MAXS 10000 char a[MAXS],b[MAXS],c[MAXS]; void cal(); int main() { int T,i; scanf("%d",&T); for(i=0;i<T;++i) { scanf("%s",a); scanf("%s",b); printf("Case %d:\n",i+1); cal(); printf("%s + %s = %s\n",a,b,c); if(i!=T-1) printf("\n"); } return 0; } void cal() { int asize=0,bsize=0,i,j,t; for(i=0;i<MAXS;++i) c[i]=0; for(asize=0;a[asize]!=0;++asize) ; for(bsize=0;b[bsize]!=0;++bsize) ; for(i=0; bsize>0 || asize>0 ;++i) { if(bsize>0) c[i]+=b[--bsize]-'0'; if(asize>0) c[i]+=a[--asize]-'0'; if(c[i]>9) { c[i+1]=c[i]/10; c[i]=c[i]%10; } } if(c[i]==0) i--; for(j=0;j<=i/2;j++) { t=c[j]; c[j]=c[i-j]; c[i-j]=t; } for(j=0;j<=i;++j) c[j]=c[j]+'0'; }