文章

119

粉丝

68

获赞

90

访问

19.9k

头像
十六进制不进位加法 题解:对齐后累加
P1702 厦门大学2017年机试题
发布于2025年2月16日 14:11
阅读数 49

#include <bits/stdc++.h>
using namespace std;

int main() {
	string a,b;
	while(cin>>a>>b){
	    while(a.size()!=b.size()){
	        if(a.size()<b.size())a='0'+a;
	        else if(b.size()<a.size())b='0'+b;
	    }
	    string x;
	    for(int i=a.size()-1;i>=0;i--){
	        int ans=0;
	        if(a[i]>='a'&&a[i]<='z'){
	            ans+=a[i]-'a'+10;
	        }else if(a[i]>='A'&&a[i]<='Z'){
	            ans+=a[i]-'A'+10;
	        }else ans+=a[i]-'0';
	        
	        if(b[i]>='a'&&b[i]<='z'){
	            ans+=b[i]-'a'+10;
	        }else if(b[i]>='A'&&b[i]<='Z'){
	            ans+=b[i]-'A'+10;
	        }else ans+=b[i]-'0';
	        
	        ans%16>=10?x.push_back(ans%16-10+'A'):x.push_back(ans%16+'0');
	    }
	    reverse(s.begin(),s.end());
	    cout<<x<<endl;
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发