题解
2023-08-17 19:45:17
发布于:广东
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+9;
int a[109],b[109],c[109];
//对s1和s2做加法
string add(string s1,string s2){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
//逆序存储
int lena=s1.size(),lenb=s2.size();
for(int i=0;i<lena;i++) a[i]=s1[lena-i-1]-'0';
for(int i=0;i<lenb;i++) b[i]=s2[lenb-i-1]-'0';
int lenc=max(lena,lenb);//lenc是答案的位数
for(int i=0;i<lenc;i++){
c[i]+=a[i]+b[i];
if(c[i]>=10){
c[i+1];
c[i]%=10;
}
}
if(c[lenc]) lenc;//判断最高位是否进位
string ans;
for(int i=lenc-1;i>=0;i--) ans+=c[i]+'0';
return ans;
}
int main(){
string s1,s2;
cin>>s1>>s2;
cout<<add(s1,s2);
return 0;
}
这里空空如也
有帮助,赞一个