高精度加法(不分低高精度)
2025-07-30 15:02:15
发布于:广东
高精度加法可以说是最经典の高精度问题了
其实就是用个string存起来然后模拟加法竖式
但是在百度查了很久怎么模拟
废话不多说,3,2,1!上代码!
#include<bits/stdc++.h>
using namespace std;
void BNA(string s,string s1) {
int mlen=max(s.size(), s1.size());
vector<int> a(mlen, 0);
vector<int> b(mlen, 0);
vector<int> c(mlen + 1, 0);
for (int i=0;i<s.size();i++) {
a[i]=s[s.size()-1-i]-'0';
}
for (int i=0;i<s1.size();i++) {
b[i]=s1[s1.size()-1-i]-'0';
}
for (int i = 0; i < mlen; i++) {
c[i]+=a[i]+b[i];
c[i+1]+=c[i]/10;
c[i]%=10;
}
int rlen=mlen;
if (c[mlen]>0) {
rlen=mlen+1;
}
string sum="";
for (int i=rlen-1;i>=0;i--) {
sum+=(c[i]+'0');
}
while (sum.size()>1&&sum[0]=='0') {
sum.erase(0,1);
}
cout<<sum<<endl;
}
int main() {
string s,s1;
cin>>s>>s1;
BNA(s,s1);
return 0;
}
每周日更新!
记得点个赞!
这里空空如也
有帮助,赞一个