2937 - 高精加法
时间限制 : 1 秒
内存限制 : 128 MB
输入两个正整数,求它们的和。
题目输入
两行:
第一行:第一个加数,长度不超过250位
第二行:第二个加数,长度不超过250位
题目输出
一行:一个正整数,代表两个加数的和
输入/输出样例
输入格式
11111111111111111111111111111 22222222222222222222222222222
输出格式
33333333333333333333333333333
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; }