问题描述:给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述:读入两个用空格隔开的正整数
输出描述:输出A+B的值
例:
输入
3 12
输出
15
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[502],b[502];
int a1[502],b1[502],c1[502];
int alen,blen,clen,i,temp;
temp=0;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(c1,0,sizeof(c1));
cin >> a >> b;
alen=strlen(a);
blen=strlen(b);
for(i=0;i<alen;i++)
{
a1[alen-1-i]=a[i]-48;
}
for(i=0;i<blen;i++)
{
b1[blen-1-i]=b[i]-48;
}
clen=(alen>blen ? alen : blen);
for(i=0;i<clen;i++)
{
c1[i]=a1[i]+b1[i]+temp;
if(c1[i]>=10)
{
temp=c1[i]/10;
c1[i]=c1[i]%10;
}
else
{
temp=0;
}
}
if(temp!=0)
{
c1[clen]=temp;
for(i=clen;i>=0;i--)
{
cout<<c1[i];
}
}
else
{
for(i=clen-1;i>=0;i--)
{
cout<<c1[i];
}
}
return 0;
}