AcWing 791. 高精度加法
原题链接
简单
作者:
wangyj
,
2020-10-30 20:16:30
,
所有人可见
,
阅读 296
C++ 代码
#include<bits/stdc++.h>
using namespace std;
string a,b;
int ans[100005],two[100005],c[100005];
int main()
{
int i,l1,l2,f=1,l,h=0;
memset(c,0,sizeof(c));
memset(ans,0,sizeof(ans));
memset(two,0,sizeof(two));
cin>>a>>b;
l1=a.size();
l2=b.size();
for(i=0;i<l1;i++)ans[l1-i-1]=a[i]-'0';
for(i=0;i<l2;i++)two[l2-i-1]=b[i]-'0';
for(i=0;i<l1;i++)if(ans[i]){h=1;break;}
for(i=0;i<l2;i++)if(two[i]){h=1;break;}
if(h==0){
printf("0\n");
return 0;
}
l=max(l1,l2)+1;
for(i=0;i<l;i++){
c[i]+=(ans[i]+two[i]);
c[i+1]=c[i]/10;
c[i]%=10;
}
for(i=l;i>=0;i--){
if(c[i])f=0;
if(f)continue;
printf("%d",c[i]);
}
printf("\n");
return 0;
}