23 条题解

  • 0
    @ 2024-12-6 18:24:12
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int x[N],y[N],z[N];
    char a[10000],b[10000];
    int main(){
    	cin>>a>>b;
    	int len1=strlen(a);
    	int len2=strlen(b);
    	int flag=0;
    	if(len1<len2){
    		flag=1;
    	}
    	if(len1==len2&&strcmp(a,b)<0){
    		flag=1;
    	}
    	if(flag){
    		swap(len1,len2);
    		swap(a,b);
    		cout<<"-";
    	}
    	for(int i=0;i<len1;i++){
    		x[i]=a[len1-i-1]-'0';
    	}
    	for(int i=0;i<len2;i++){
    		y[i]=b[len2-i-1]-'0';
    	}
    	for(int i=0;i<len1;i++){
    		z[i]+=x[i]-y[i];
    		if(z[i] < 0){	
    			z[i] += 10;
    			z[i+1]-=1;
    		}
    	}
    	while(z[len1] == 0 && len1 > 0){
    		len1--;
    	}
    		
    	for(int i=len1;i>=0;i--){
    		cout<<z[i];
    	}
    	return 0;
    }
    

    信息

    ID
    1191
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    913
    已通过
    247
    上传者