描述
求两个非负整数(1000位以内)的和。
输入
两个非负整数(1000位以内),以空格分隔。
输出
两个非负整数的和。
样例输入
111111111111 222222222222
样例输出
333333333333
#include <iostream> #include <string> using namespace std; #define N 1001 int main() { char a[N],b[N]; int sum[N]; for (int j=0;j<N;j++) sum[j]=0; int m1,m2,m3,m4; cin>>a; m1=strlen(a); cin>>b; m2=strlen(b); m3=m1<m2?m1:m2; m4=m1>m2?m1:m2; for (int i=0;i<m3;i++) sum[m4-i]=(a[m1-i-1]-'0')+(b[m2-i-1]-'0'); if(m1>=m2) { for(int c=0;c<(m1-m2);c++) sum[c+1]=(a[c]-'0'); } else for(int d=0;d<(m2-m1);d++) sum[d+1]=(b[d]-'0'); for (int e=N;e>=0;e--) { if (sum[e]>=10) { sum[e]%=10; sum[e-1]+=1; } } if(sum[0]!=0) for (int k=0;k<m4+1;k++) cout<<sum[k]; else for (int f=1;f<=m4;f++) cout<<sum[f]; cout<<endl; return 0; }