top1编程
← 返回题目
题解

【提高】破译密码

1 条题解

  • 0
    @ 2026-7-29 0:17:19
    #include <bits/stdc++.h> 
    using namespace std;
    long long jian(string a,string b){
    	while(b.size()<a.size()) b="0"+b;
    	int cnt=0;
    	string s=""; 
    	for(int i=a.size()-1;i>=0;i--){
    		int x=(a[i]-'0')-(b[i]-'0')-cnt;
    		if(x<0){
    			x+=10;
    			cnt=1;
    		}else{
    			cnt=0;
    		}
    		char ch=x+'0';
    		s=ch+s;
    	}
    	long long num=0;
    	for(char c:s){
    		int x=c-'0';
    		num=num*10+x;
    	}
    	return num;
    }
    string liu(string a,string b){
    	long long s=jian(a,b);
    	if(s==0){
    		return "0";
    	}
    	string m="";
    	const string z="0123456789ABCDEF";
    	while(s>0){
    		m=z[s%16]+m;
    		s/=16;
    	}
    	return m;
    }
    int main(){
    	string a,b;
    	cin>>a>>b;
    	if(a<b) swap(a,b);
    	cout<<liu(a,b);
    	return 0; 
    }
    
    • 1