3 条题解

  • 0
    @ 2023-5-13 10:28:12
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1005;
    string a1,b1;
    int a[maxn],b[maxn],c[maxn],fa,fb,lena,lenb,lenc;
    void abb(int x[],int y[]){
    	lenc=max(x[0],y[0]);
    	for(int i=1;i<=lenc;i++){
    		c[i]=c[i]+x[i]+y[i];
    		if(c[i]>9){
    			c[i]=c[i]%10;
    			c[i+1]++;
    		}
    	}
    	if(c[lenc+1]!=0) lenc++;
    	for(int i=lenc;i>=1;i--)
    	cout<<c[i];
    }
    void jian(int x[],int y[]){
    	lenc=x[0];
    	for(int i=1;i<=lenc;i++){
    		if(x[i]<y[i]){
    			x[i+1]--;
    			x[i]=x[i]+10;
    		}
    		c[i]=x[i]-y[i];
    	}
    	while(c[lenc]==0) lenc--;
    	for(int i=lenc;i>=1;i--)
    	cout<<c[i];
    }
    int main(){
    	cin>>a1>>b1;
    	if(a1==b1){
    		cout<<0;
    		return 0;
    	}
        if(a1[0]=='-'){
        	fa=1;
        	a1.erase(0,1);
    	}
    	if(b1[0]=='-'){
    		fb=1;
    		b1.erase(0,1);
    	}
        a[0]=a1.size();
        for(int i=1;i<=a[0];i++){
        	a[i]=a1[a[0]-i]-'0';
    	}
        b[0]=b1.size();
        for(int i=1;i<=b[0];i++)
    	b[i]=b1[b[0]-i]-'0';
    	
    	if(fa==0 && fb==0){
    		if(a[0]<b[0] ||(a[0]==b[0] && a1<b1)){
    			cout<<"-";
    			jian(b,a);
    		}else jian(a,b);
    	} 
    	if(fa==0 && fb==1){
    		abb(a,b);
    	}
    	if(fa==1 && fb==1){
    		if(a[0]>b[0]||(a[0]==b[0]&&a1>b1)){
    			cout<<'-';
    			jian(a,b);
    		}else jian(b,a);
    	}
    	if(fa==1 && fb==0){
    		cout<<"-";
    		abb(a,b); 
    	}
    	return 0;
    }
    

    信息

    ID
    942
    时间
    1000ms
    内存
    16MiB
    难度
    7
    标签
    递交数
    99
    已通过
    22
    上传者