描述
求两个非负整数(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;
}