高精度加法解法
2026-05-03 17:09:39
发布于:江苏
1阅读
0回复
0点赞
这道题目可以直接用高精度加法解决
#include<bits/stdc++.h>
using namespace std;
int a[10010],b[10010],c[10010];
string Add(string as,string bs){
//0
memset(a,0,sizeof a);
memset(b,0,sizeof b);
memset(c,0,sizeof c);
int al=as.size(),bl=bs.size();
int cl=max(al,bl)+1;
//1
for(int i=1;i<=al;i++){
a[i]=as[al-i]-'0';
}
for(int i=1;i<=bl;i++){
b[i]=bs[bl-i]-'0';
}
//2
for(int i =1;i<=cl;i++){
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]%=10;
}
//3
while(c[cl]==0&&cl>1)
cl--;
//4
string cs;
for(int i = cl;i>=1;i--)
cs+=c[i]+'0';
return cs;
}
int main(){
string as,bs;
cin >> as >> bs;
cout << Add(as,bs);
}
这里空空如也

有帮助,赞一个