蒟蒻求助大佬(高精度加法)
  • 板块学术版
  • 楼主ttkuilei
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/3/16 16:34
  • 上次更新2023/10/28 06:27:26
查看原帖
蒟蒻求助大佬(高精度加法)
549426
ttkuilei楼主2022/3/16 16:34

不进位还好,一进位它就死活输不出第一位。。。

#include<iostream>
#include<string>
using namespace std;
int main() {
	string a,b;//2个加数 
	cin>>a>>b;
	
	int zeroa=0,zerob=0;//估算0的个数 
	for(int i=0;i<a.size();i++)
		if(a[i]==0) zeroa++;//a的0 
		else break;
	for(int i=0;i<b.size();i++)
		if(b[i]==0) zerob++;//b的0 
		else break;
	char ans[220]={'0'};//储存答案 
	int m=max(a.size(),b.size())-min(zeroa,zerob);//估算答案的位数 
	
	bool j=0;//是否进位 
	for(int i=m;i>=0;i--) {
		char x=a[i]+b[i]-48+j; 
		j=0;
		if(x>'9') {
			x-=10;
			j=1;
		}
		ans[i]=x;
	}
	
	bool q=0;//是否为多余前导0 
	for(int i=0;i<=m;i++) {
		if(ans[i]!='0') q=1;
		if(q) cout<<ans[i];
	}
	return 0;
}

哪位大佬帮我改亿下?

2022/3/16 16:34
加载中...