问题描述
计算 a+b 的值,a,b 皆为不超过 240 位的非负整数。
输入
两个正整数,每行一个。
输出
一个数,代表两个整数的和。
样例
输入
1 2
输出
3
输入
0 0
输出
0
输入
11111111111111111111 22222222222222222222
输出
33333333333333333333
说明
备注
a,b 两个整数都不含前导 00,即:如果a=100 不可能输入 0100 这样的含有前导 00 的整数。
需要注意的是 a,b 可能为 00。
语言 C++
代码:
#include <bits/stdc++.h>
#include<string>
#include<algorithm>
using namespace std;
int main(){
int i,l,l1,a[32767]={},b[32767]={},c[32767],d,t=0;
string s,s1,result;
cin>>s>>s1;
l=s.size();
l1=s1.size();
d=max(l,l1);
for(i=0;i<=l-1;i++){
a[i]=s[l-1-i]-'0';
}
for(i=0;i<=l1-1;i++){
b[i]=s1[l1-1-i]-'0';
}
for(i=0;i<=d-1;i++){
c[i]=(a[i]+b[i]+t)%10;
t=(a[i]+b[i]+t)/10;
}
if (t==1){
cout<<1;
}
for(i=d-1;i>=0;i--){
result += char(c[i]+'0');
}
cout<<result;
}