1 solutions

  • 0
    @ 2025-3-3 16:21:29

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    //a ,b都是正数 
    string f1(string a,string b){
    	string r="";
    	int k=0;
    	//考虑a与b相同
    	if(a==b) return "0";
    	//两数相减,将较大的数放上面 
    	if(a.size()<b.size())
    	{
    		swap(a,b);
    		k = 1;
    	}else if(a.size()==b.size() && a<b){
    		swap(a,b);
    		k = 1; 
    	}
    	//给较小的数补充前置0   123 - 1 => 123 - 001 
    	while(b.size()!=a.size()) b = '0' + b;
    	int i,f=0,x,y,n=a.size();
    	//从后往前逐位相减 
    	for(i=n-1;i>=0;i--)
    	{
    		x = a[i]-'0';
    		y = b[i]-'0';
    		if(x-f>=y)
    		{	
    			r = char(x-f-y+'0') + r;
    			f = 0; //借位 
    		}else{
    			r = char(x-f-y+10+'0') + r;
    			f = 1;
    		}
    	}
    	//删除前置0
    	while(r[0]=='0') r.erase(0,1);
    	if(k==1) r = '-'+r; 
    	return r;
    }
    //实现两数相加 
    string f2(string a,string b){
    	string r="";
    	if(a.size()<b.size()) swap(a,b);	
    	while(b.size()!=a.size()) b = '0' + b;
    	int i,x,y,n=a.size(),f=0;
    	for(i=n-1;i>=0;i--)
    	{
    		x = a[i]-'0';
    		y = b[i]-'0';
    		r  = char((x+y+f)%10+'0')  + r;
    		//是否会有新的进位  f=1进位  f=0无进位  
    		f = (x+y+f)/10;
    	}
    	if(f==1) r = '1' + r; 
    	return r;
    }
    
    int main(){
    	string a,b,t,at,bt;
    	cin>>a>>b;
    	if(a[0]!='-' && b[0]!='-'){  //正 正 
    		cout<<f1(a,b);
    	}else if(a[0]=='-' && b[0]!='-'){ //负 正
    		t = "";
    		for(int i=1;i<a.size();i++)  t = t + a[i];
    		cout<<"-"<<f2(t,b);
    	}else if(a[0]!='-' && b[0]=='-'){ //正 负 
    		t = "";
    		for(int i=1;i<b.size();i++)  t = t + b[i];
    		cout<<f2(a,t);
    	}else{ //负 负 
    		//at 接收a字符串对应的正数
    		//bt 接收b字符串对应的正数
    		at = "";
    		bt = ""; 
    		for(int i=1;i<a.size();i++)  at = at + a[i];
    		for(int i=1;i<b.size();i++)  bt = bt + b[i];
    		cout<<f1(bt,at);
    	}
    	return 0;
    }
    
    

    Python :

    print(int(input())-int(input()))
    
    • 1

    Information

    ID
    9988
    Time
    1000ms
    Memory
    16MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By