#include<iostream>
#include<cmath>
using namespace std;
const int N=1e5+10;
string a,b;
int A[N],B[N],C[N];
int add(){
int c1=0,l1=a.size();
for(int i=l1-1;i>=0;i--)
A[++c1]=a[i]-'0';
int c2=0,l2=b.size();
for(int i=l2-1;i>=0;i--)
B[++c2]=b[i]-'0';
int cnt=max(l1,l2);
int t=0; //表示进位
for(int i=1;i<=cnt;i++){
t+=A[i]+B[i]; //两i位上的数相加再加上上一位进的数
C[i]=t%10;
t/=10; //进位的数
}
if(t)C[++cnt]=1;
return cnt;
}
int main(){
cin>>a>>b;
int ans=add();
//A和B是倒着输入的所以C要倒着输出
for(int i=ans;i>=1;i--)
cout<<C[i];
}
高精度加法模板
最新推荐文章于 2024-08-14 20:03:33 发布