题目描述
高精度加法,相当于 a+b problem,不用考虑负数。
输入格式
分两行输入。a,b \leq 10^{500}a,b≤10500。
输出格式
输出只有一行,代表 a+ba+b 的值。
输入输出样例
输入 #1复制
1 1
输出 #1复制
2
输入 #2复制
1001 9099
输出 #2复制
10100
说明/提示
20\%20% 的测试数据,0\le a,b \le10^90≤a,b≤109;
40\%40% 的测试数据,0\le a,b \le10^{18}0≤a,b≤1018。
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int a[10000],b[10000],c[10000];
int main() {
char s1[10000],s2[10000];
cin>>s1>>s2;
int lena=strlen(s1),lenb=strlen(s2);
for (int i=0; i<lena ; i++) a[i]=s1[lena-1-i]-'0';
for(int i=0; i<lenb ; i++) b[i]=s2[lenb-1-i]-'0';
int len=max(lena,lenb);
for(int i=0; i<len; i++) {
c[i]+=a[i]+b[i];
c[i+1]+=c[i]/10;
c[i]%=10;
}
if(c[len]>0) len++;
while(c[len-1]==0&&len>1) len--;
for(int i=len-1; i>=0; i--) cout<<c[i];
return 0;
}