用string实现高精度加法,但是进位错误,求调!!!
  • 板块学术版
  • 楼主wky_wsy_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/9 22:37
  • 上次更新2024/11/10 10:00:36
查看原帖
用string实现高精度加法,但是进位错误,求调!!!
1323415
wky_wsy_楼主2024/11/9 22:37

源码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
string add(string a,string b){
	int la=a.size(),lb=b.size();
	int l=max(la,lb),lm=min(la,lb);
	if(la<lb){
		string sb;
		for(int i=0;i<lb-la;i++){
			sb+='0';
		}
		sb+=a;
		a=sb;
	}
	else{
		string sb;
		for(int i=0;i<la-lb;i++){
			sb+='0';
		}
		sb+=b;
		b=sb;
	}
	string c;
	for(int i=l;i>-1;i--){
		c+=(char)'0'+(a[i]-'0'+b[i]-'0');
	}
	for(int i=l;i>-1;i--){
		if(c[i]>'9'){
			c[i+1]+=(c[i]-'0')/10;
			c[i]=(c[i]-'0')%10+'0';
		}
	}
	return c;
}
signed main(){
	cin.tie(0);
	cout.tie(0); 
	string a,b;
	cin>>a>>b;
	string z=add(a,b);
	int l=z.size();
	for(int i=l;i>-1;i--){
		cout<<z[i];
	}
	return 0;
}
2024/11/9 22:37
加载中...