文章

13

粉丝

25

获赞

2

访问

7.2k

头像
十六进制不进位加法 题解:
P1702 厦门大学2017年机试题
发布于2024年6月14日 10:50
阅读数 501

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s1,s2;
	while(cin>>s1>>s2)
	{
		reverse(s1.begin(),s1.end());
		reverse(s2.begin(),s2.end());
		// 转大写 
		for(int i = 0;i<s1.size();i++)
		{
			if(s1[i]>='a') s1[i] = toupper(s1[i]);
		}
		for(int i = 0;i<s2.size();i++)
		{
			if(s2[i]>='a') s2[i] = toupper(s2[i]);
		}
		
		if(s1.size()>s2.size())
		{
			for(int i = 0;i<s2.size();i++)
			{
				int flag = 0;
				if(s1[i]>'9') flag += 10 + s1[i] - 'A';
				else flag += s1[i] - '0'; 	
				
				if(s2[i]>'9') flag += 10 + s2[i] - 'A';	
				else flag += s2[i] - '0';
				
				flag = flag%16;
				
				if(flag<10) s1[i] = '0' + flag;
				else s1[i] = 'A' + flag - 10;
			}
			reverse(s1.begin(),s1.end());
			cout<<s1<<endl;	
		}else{
			for(int i = 0;i<s1.size();i++)
			{
				int flag = 0;
				if(s1[i]>'9') flag += 10 + s1[i] - 'A';
				else flag += s1[i] - '0'; 	
				
	...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发