无语,答案是0,却输出的是空的
查看原帖
无语,答案是0,却输出的是空的
439579
wangxinhang楼主2022/7/27 17:05

这是代码:

#include <iostream>
#include <string>
using namespace std;
string reverse(string s){
	string r="";
	for(int i=s.size()-1;i>=0;i--){
		r=r+s[i];
	}
	return r;
}
string jianfa(string a,string b){
	if(a.size()<b.size()){
		swap(a,b);
	}else if(a.size()==b.size()){
		for(int i=0;i<a.size();i++){
			if(int(a[i])<int(b[i])){
				swap(a,b);
			}
		}
	}
	string ra=reverse(a);
	string rb=reverse(b);
	string s="";
	int jw=0;
	for(int i=0;i<ra.size();i++){
		int x=ra[i]-'0';
		int y=0;
		if(i<rb.size()) y=rb[i]-'0';
		int z=x-y-jw;
		if(z<0){
			jw=1;
			z=z+10;
		}else jw=0;
		s=s+char(z+'0');
	}
	s=reverse(s);
	int i=0;
	while(s[i]=='0') i++;
	s=s.substr(i);
	if(s=="") s="0";
	return s;
}
int main(){
	string a,b;cin>>a>>b;
	if(a.size()<b.size()){
		cout<<"-"<<jianfa(a,b)<<endl;
		return 0;
	}else if(a.size()==b.size()){
		for(int i=0;i<a.size();i++){
			if(int(a[i])<int(b[i])){
				cout<<"-"<<jianfa(a,b)<<endl;
				return 0;
			}
		}
	}else cout<<jianfa(a,b)<<endl;
	return 0;
}
2022/7/27 17:05
加载中...