求助!只有10分,好奇数据测试点是啥
查看原帖
求助!只有10分,好奇数据测试点是啥
1289511
Ashina2554楼主2024/3/21 11:25
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;

int main(){
	string a,b;cin>>a>>b;
	int numa[10001]={0},numb[1001]={0},numc[10001]={0};
	for(int i=a.length()-1;i>=0;i--){
		numa[a.length()-1-i]=a[i]-'0';
	}
	for(int i=b.length()-1;i>=0;i--){
		numb[b.length()-1-i]=b[i]-'0';
	}
	if(a.length()>b.length()){
		for(int i=0;i<=b.length()-1;i++){
			if(numa[i]>=numb[i])
				numc[i]+=numa[i]-numb[i];
			else{
				numa[i]+=10;
				numa[i+1]--;
				numc[i]+=numa[i]-numb[i];
			}
		}
	}
	else if(a.length()==b.length()){
		int flag = 0;
		for(int i=a.length()-1;i>=0;i--){
			if(numa[i]<numb[i]){
				flag = 1;
			}
		}
		if(flag==0){
			for(int i=0;i<=b.length()-1;i++){
				if(numa[i]>=numb[i])
					numc[i]+=numa[i]-numb[i];
				else{
					numa[i]+=10;
					numa[i+1]--;
					numc[i]+=numa[i]-numb[i];
				}
			}
		}
		else if(flag==1){
			for(int i=0;i<=b.length()-1;i++){
				if(numb[i]>=numa[i])
					numc[i]+=numb[i]-numa[i];
				else{
					numb[i]+=10;
					numb[i+1]--;
					numc[i]+=numb[i]-numa[i];
				}
			}
			cout<<'-';
		}
	}
	else{
		for(int i=0;i<=b.length()-1;i++){
			if(numb[i]>=numa[i])
				numc[i]+=numb[i]-numa[i];
			else{
				numb[i]+=10;
				numb[i+1]--;
				numc[i]+=numb[i]-numa[i];
			}
		}
		cout<<'-';
	}
	int len = max(a.length()-1,b.length()-1);
	for(int i=len;i>=0;i--){
		if(numc[i]==0&&i!=0)len--;
		if(numc[i]!=0)break;
		}
	for(int i=len;i>=0;i--)
		cout<<numc[i];
	return 0;
} 
2024/3/21 11:25
加载中...