求助高精度减法
查看原帖
求助高精度减法
804757
Light_Star_RPmax_AFO楼主2023/2/19 22:46
#include <bits/stdc++.h>
using namespace std;
int a[10090],b[10090],c[10090];
int main(){
	string A,B;
	cin>>A>>B;
	for(int i=0;i<A.length();i++){
		a[i]=A[i]-'0';
	}
	for(int i=0;i<B.length();i++){
		b[i]=B[i]-'0';
	}
	int len=max(A.length(),B.length())-1;
	if(A.size()<B.size()||A.size()==B.size()&&A<B){
		for(int i=A.size()-1,j=B.size()-1,k=0;i>=0||j>=0;i--,j--,k++){
			c[k]+=b[j]-a[i];
			if(c[k]<0)c[k+1]--,c[k]+=10;
		}
		while(c[len]==0&&len>=0)len--;
		cout<<'-';
		for(int i=len;i>=0;i--)cout<<c[i];
	}
	else {
		for(int i=A.size()-1,j=B.size()-1,k=0;i>=0||j>=0;i--,j--,k++){
			c[k]+=a[i]-b[j];
			if(c[k]<0)c[k+1]--,c[k]+=10;
		}
		while(c[len]==0&&len>=-1)len--;
		if(len>=0){
		for(int i=len;i>=0;i--)cout<<c[i];}
		else cout<<0;
	}
}

90分服了

2023/2/19 22:46
加载中...