#include<iostream> #include<stdio.h> #include<string.h> #include<math.h> using namespace std; #define Max 1000 char a[Max],b[Max]; int c[Max],d[Max],e[Max]; int main() { int x=0; while(~scanf("%s%s",a,b)) { memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); memset(e,0,sizeof(e)); x++; int a1=strlen(a); int a2=strlen(b); int a3=a1-1; int a4=a2-1; //将字符串倒序,将字符转化为数字才能进行加法 for(int i=0; i<a1; i++) { c[a3]=(a[i]-48); //减个'0'就可以转化了 a3--; } for(int i=0; i<a2; i++) { d[a4]=(b[i]-48); a4--; } int l=max(a1,a2); for(int i=0; i<l; i++) { //对两组字符串中的数逐位相加,存于e[i] e[i]+=(c[i]+d[i]); // 得到的结果进行进制位处理 if(e[i]>=10) { e[i+1]++; e[i]=e[i]%10; } } if(e[l]!=0) printf("%d",e[l]); // 输出结果 for(int i=l-1; i>=0; i--) { printf("%d",e[i]); } } } |
Double click to view unformatted code.