总时间限制:
1000ms
内存限制:
65536kB
描述
求两个不超过200位的非负整数的和。
输入
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
22222222222222222222 33333333333333333333
样例输出
55555555555555555555
来源
程序设计实习2007
代码
#include<bits/stdc++.h>
using namespace std;
char a[210],b[210];
int a1[210],b1[210],m,n,c[210],x,l;
int main()
{
cin>>a>>b;
int la=strlen(a);
int lb=strlen(b);
if(la>lb)
{
l=la;
}else l=lb;
for(int i=la-1;i>=0;i--) a1[m++]=a[i]-'0';
for(int j=lb-1;j>=0;j--) b1[n++]=b[j]-'0';
for(int i=0;i<=l;i++)
{
c[i]=a1[i]+b1[i]+x;
x=c[i]/10;
c[i]%=10;
}
while(c[l]==0&&l>0) l--;
for(int k=l;k>=0;k--)
{
cout<<c[k];
}
}
745

被折叠的 条评论
为什么被折叠?



