这道题如果直接把输入当作十六进制数来处理,那就会方便很多,所幸C++的头文件里提供了输入和输出十六进制数的控制符。
#include<iostream>
using namespace std;
int main()
{
long long a,b,sum;
while(cin>>hex>>a>>b)
{
sum=a+b;
if(sum<0)
{
cout<<'-';
sum=-sum;
}
cout<<hex<<uppercase<<sum<<endl;
}
return 0;
}
上图是网上找到的C++的一系列控制符。
使用hex,默认字母小写,因为题目要求大写,所以再加上uppercase。
十六进制负数在计算机里以补码形式保存,所以如果相加结果为负则取反。