【问题描述】
求两个不超过200位的非负整数的和。
【输入数据】
有两行,每行是一个不超过200位的非负整数,没有多余的前导0。
【输出要求】
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
【输入样例】
22222222222222222222
33333333333333333333
【输出样例】
55555555555555555555
code<代码>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a1[201],b1[201];
int a[210],b[210],c[210],lena,lenb,lenc,i,x;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
cin>>a1;
cin>>b1;
lena=strlen(a1);
lenb=strlen(b1);
for(i=0;i<=lena-1;i++)
a[i]=a1[lena-i-1]-48;
for(i=0;i<=lenb-1;i++)
b[i]=b1[lenb-i-1]-48;
lenc=lena>lenb?lena:lenb;
x=0;
for(i=0;i<=lenc-1;i++)
{
c[i]=a[i]+b[i]+x;
x=c[i]/10;
c[i]=c[i]%10;
}
if(x!=0)
{
c[lenc]+=x;
lenc++;
}
for(i=lenc-1;i>=0;i--)
cout<<c[i];
cout<<endl;
return 0;
}