2937 - 高精加法
输入两个正整数,求它们的和。
Input
两行:
第一行:第一个加数,长度不超过250位
第二行:第二个加数,长度不超过250位
Output
一行:一个正整数,代表两个加数的和
Examples
Input
11111111111111111111111111111 22222222222222222222222222222
Output
33333333333333333333333333333
Solution C++
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int main () { char a1[10001],b1[10001]; int a[10000],b[10000],c[10000],l1,l2,l,i,m; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin.getline(a1,10000);cin.getline(b1,10000); l1=strlen(a1);l2=strlen(b1); for (i=0;i<=l1-1;++i) a[l1-i]=a1[i]-48; for (i=0;i<=l2-1;++i) b[l2-i]=b1[i]-48; l=1;m=0; while ((l<=l1)||(l<=l2)) { c[l]=a[l]+b[l]+m; m=c[l]/10; c[l]%=10; l++; } c[l]=m; if (c[l]==0) l=l-1; for (i=l;i>=1;i--) cout<<c[i]; return 0; }