高精度A-B蒟蒻求助
  • 板块学术版
  • 楼主luochenkai
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/25 13:40
  • 上次更新2023/11/25 15:33:31
查看原帖
高精度A-B蒟蒻求助
890155
luochenkai楼主2023/11/25 13:40

主要应该是30-33行有问题

#include<bits/stdc++.h>
using namespace std;
bool f(string a,string b){
	if(a.length()!=b.length())return a.length()>b.length();
	for(int i=0;i<(int)a.length();i++){
		if(a[i]!=b[i])return a[i]>b[i];
	}
	return 1;
}
int main(){
	string s1,s2;
	cin>>s1>>s2;
	int la=s1.length();
	int a[505]={0},b[505]={0},c[505]={0,0,0};
	if(f(s1,s2)==false){
		cout<<'-';
		for(int i=0;i<la;++i){
			b[la-i-1]=s1[i]-'0';
			a[la-i-1]=s2[i]-'0';
		}
	}
	else{
		for(int i=0;i<la;++i){
			a[la-i-1]=s1[i]-'0';
			b[la-i-1]=s2[i]-'0';
		}
	}
	for(int i=0;i<la;i++){
		c[la-i-1]+=a[i]-b[i];
		if(c[la-i-1]<0){
			c[la-i-2]--;
			c[la-i-1]+=10;
		}
	}
	int n=0;
	while(c[n]==0)n++;
	for(int i=n;i<la;i++){
		cout<<c[i]<<" ";
	}
	if(la==0)cout<<0;
	return 0;
}

爸爸们求求了,可以给关注

2023/11/25 13:40
加载中...