高精度加法
【输入数据】
有两行,每行是一个不超过200位的非负整数,没有多余的前导0。
【输出要求】
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
【输入样例】
2222222222222222222233333333333333333333
【输出样例】
55555555555555555555
code
#include#includeusing 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; }