描述
高精度加法,相当于a+b problem,不用考虑负数.
输入
分两行输入。a,b\leq10^{500}a,b⩽10500
输出
输出只有一行,代表a+b的值
输入样例 1复制
1 1
输出样例1复制
2
输入样例 2复制
1001 9099
输出样例2复制
10100
#include<bits/stdc++.h>
using namespace std;
#define N 1000000
int main(){
string sa,sb;
int a[N]={0},b[N]={0},c[N]={0},lena,lenb,i;
cin>>sa>>sb;
lena=sa.size();
lenb=sb.size();
for(i=0;i<lena;i++) a[i]=sa[lena-1-i]-'0';
for(i=0;i<lenb;i++) b[i]=sb[lenb-1-i]-'0';
int lenc=0;
for(lenc=0;lenc<lena || lenc<lenb;lenc++){
c[lenc]=c[lenc]+a[lenc]+b[lenc];
c[lenc+1]=c[lenc+1]+c[lenc]/10;
c[lenc]=c[lenc]%10;
}
if(c[lenc]==0) lenc--;
for(i=lenc;i>=0;i--) cout<<c[i];
/*
这种方法其实和上面差不多
int lenc=0,x=0;
for(lenc=0;lenc<lena || lenc<lenb;lenc++){
c[lenc]=a[lenc]+b[lenc]+x;
x=c[lenc]/10;
c[lenc]=c[lenc]%10;
}
c[lenc]=x;
if(c[lenc]==0) lenc--;
for(i=lenc;i>=0;i--) cout<<c[i];
*/
return 0;
}