帮看看~~
查看原帖
帮看看~~
552936
Ke_qing_is_mine楼主2021/10/4 13:05
#include<bits/stdc++.h>
using namespace std;
string s1,s2,s;
const int maxn=200000; 
int a1[maxn],a2[maxn];
int n1,n2,n;
void zh(string s,int a[maxn]){
	int n=s.length();
	for(int i=0;i<s.length();i++){
	    a[n-i]=s[i]-'0';
	}   
}
void jf(int a1[maxn],int n1,int a2[maxn],int n2,int a3[maxn]){
	for(int i=1;i<=max(n1,n2);i++){
		a3[i]=a1[i]-a2[i];
	} 
}
void tw(int a[maxn],int *n){
	for(int i=*n;a[i]==0;i--){
		a[i]+=10;
        a[i+1]--;
	} 
}
string zhs(int a[maxn],int n){
	for(int i=n;i>=1;i--){
		char ch=a[i]+'0';
		s=s+ch;	
	}
	return  s; 
}
int main(){
	int flag=1;
	cin>>s1>>s2;
	memset(a1,0,sizeof(a1));
	memset(a2,0,sizeof(a2)) ;
	n1=s1.length();
	n2=s2.length();
	zh(s1,a1);
	zh(s2,a2);
	if((a1<a2&&s1.size()==s2.size())||s1.size()<s2.size()){
		swap(a1,a2);
		flag=-1; 
	} 
	jf(a1,n1,a2,n2,a1);
	n=max(n1,n2);
	tw(a1,&n);
	s=zhs(a1,n);
	if(flag!=-1){
		cout<<s<<endl;
	}
	else cout<<'-'<<s<<endl; 
	return 0;
}

2021/10/4 13:05
加载中...