怎么错了一个?
查看原帖
怎么错了一个?
913288
3_14楼主2024/3/1 21:05

错误测试点信息

#include<bits/stdc++.h>
using namespace std;
const int MAX=1e7+1;
string s1,s2;
int n1[MAX],n2[MAX],ans[MAX];
int main(){
	cin>>s1>>s2;
	int len1=s1.size(),len2=s2.size(),mlen=max(len1,len2);
	if(len1<len2){
		cout<<'-';
		swap(s1,s2);
		swap(len1,len2);
	}else if(len1==len2){
		int j=len1,f=false;
		while(j--){
			if(s1[j]<s2[j]){
				f=true;
				break;
			}
		}
		if(f){
			swap(s1,s2);
			swap(len1,len2);
			cout<<'-';
		}
	}
	for(int i=0;i<len1;i++)n1[len1-1-i]=s1[i]-'0';
	for(int i=0;i<len2;i++)n2[len2-1-i]=s2[i]-'0';
	int k=0;
	for(int i=0;i<mlen;i++){
		ans[i]=n1[i]-k-n2[i];
		if(ans[i]<0){
			ans[i]+=10;
			k=1;
		}else{
			k=0;
		}
	}
	for(int i=mlen-1;i>=0;i--){
		cout<<ans[i];
	}
	return 0;
}
2024/3/1 21:05
加载中...