求助合并
  • 板块学术版
  • 楼主2022fsjh
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/26 20:29
  • 上次更新2023/10/27 13:32:50
查看原帖
求助合并
712168
2022fsjh楼主2022/8/26 20:29

求把两端代码合并成判断大小之后的高精度减法。

输入的两个正整数中较大者减去较小者的差值。

代码1:(高精)比大小

#include<iostream>
#include<algorithm>
using namespace std;
main()
{
	string a,b;
	cin>>a>>b&&a!="0"&&b!="0"
	
		bool check=true,same=true;
		int xa[1000]={},xb[1000]={};
		for(int i=0;i<a.length();i++)
			xa[i]=a[a.length()-i-1]-'0';
		for(int i=0;i<b.length();i++)
			xb[i]=b[b.length()-i-1]-'0';
		for(int i=max(a.length(),b.length());i>=0;i--){
			if(xa[i]!=xb[i]) same=false;
			if(xa[i]<xb[i]) {check=false;break;}
			if(xa[i]>xb[i]) break;
		}
		if(same)
			cout<<"ping"<<endl;
		else
			check?cout<<"a win"<<endl:cout<<"b win"<<endl;
}

代码2:(高精减法)

#include<bits/stdc++.h>
using namespace std;
int a[20001],b[20001],c[20001];
char q1[20001],q2[20001];
int main(){
	cin>>q1>>q2;
	int len1=strlen(q1),len2=strlen(q2);
	for(int i=len1;i>=1;i--){
		a[i]=q1[len1-i]-'0';
	}
	for(int i=len2;i>=1;i--){
		b[i]=q2[len2-i]-'0';
	}
	for(int i=1;i<=len1;i++){
		c[i]=a[i]-b[i];
	}
	for(int i=1;i<=len1;i++){
		if(c[i]<0){
			c[i]+=10;
			c[i+1]--;
		}
	}
	while(c[len1]==0){
		len1--;
	}
	for(int i=max(1,len1);i>=1;i--){
		cout<<c[i];
	}
	return 0;
}
2022/8/26 20:29
加载中...