1111111111
2222222222
3333333333
#include <bits/stdc++.h> #define N 5000 #define ZEROCHAR -48 int maxleng(int a,int b) { return a>b?a:b; } int transnumber(char c) { return c-‘0‘; } int main() { char a[N+5],b[N+5]; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s %s",a,b); int len1=strlen(a); int len2=strlen(b); int i; for(i=0;i<(len1+1)/2;++i) { if(i==len1-1-i) break; a[i]=a[i]+a[len1-1-i]; a[len1-1-i]=a[i]-a[len1-1-i]; a[i]=a[i]-a[len1-1-i]; } for(i=0;i<(len2+1)/2;++i) { if(i==len2-1-i) break; b[i]=b[i]+b[len2-1-i]; b[len2-1-i]=b[i]-b[len2-1-i]; b[i]=b[i]-b[len2-1-i]; } int leng=maxleng(len1,len2); int c,psum,sum[N+5],an,bn; for(i=0,c=0,psum=0;i<=leng;++i) { an=transnumber(a[i]); bn=transnumber(b[i]); if(an==ZEROCHAR) an=0; if(bn==ZEROCHAR) bn=0; psum=an+bn+c; sum[i]=psum%10; c=psum/10; } int sumleng=(sum[leng]>0?leng+1:leng); for(i=sumleng-1;i>=0;--i) { printf("%d",sum[i]); } printf("\n"); return 0; }
原文:https://www.cnblogs.com/Diliiiii/p/9164563.html