大数加法模板
#include <iostream> #include <cstdio> #include <cstring> using namespace std; char s[1005],p[1005]; int a[1005],b[1005],c[1005]; int main(){ s[0]='#';p[0]='#'; int T,cas=0;scanf("%d",&T); while(T--){ scanf("%s%s",s+1,p+1); int i,lens=strlen(s)-1,lenp=strlen(p)-1; for(i=0;i<1005;++i) a[i]=0; for(i=0;i<1005;++i) b[i]=0; for(i=lens;i>=1;--i) a[i]=s[lens-i+1]-'0'; for(i=lenp;i>=1;--i) b[i]=p[lenp-i+1]-'0'; a[0]=lens;b[0]=lenp;c[0]=max(a[0],b[0]); for(i=1;i<=a[0]||i<=b[0];++i) c[i]=a[i]+b[i]; for(i=1;i<=c[0];++i) if(c[i]>=10){ if(i+1>c[0]) c[0]++;c[i+1]+=c[i]/10;c[i]%=10; } while(c[c[0]]>=10) { c[c[0]+1]=c[c[0]]/10; c[c[0]++]%=10; } printf("Case %d:\n%s + %s = ",++cas,s+1,p+1); for(i=c[0];i>=1;--i) printf("%d",c[i]);printf("\n"); if(T!=0) printf("\n"); } return 0; }