您的位置:首页 > 大数据 > 人工智能

【暑期基础3】E HDU 2057 A + B Again

2015-08-10 18:38 579 查看

题意

用十六进制输出 A + B 的值(A、B均为十六进制)。

思路

(1)最初的思路就是以字符数组输入,十六进制转化为十进制。最后再将结果转回十六进制。过于复杂,所以换了思路。

(2)第二个思路是直接使用
%p 和 %x
对十六进制进行输入输出,但是发现测试数据,
-1A -12
1A -AA
这两组都溢出了,仔细再看一遍题目,发现刚才看题有遗漏,题中说了“The length of A and B is less than 15.”,需要使用
__int64
(long long)来存取,需使用
%I64X
而不是
%p 和 %x
。另外,需要注意的是符号的输出,注意“负号”。

AC 代码 *

#include <stdio.h>

int main() {
__int64 a, b;
while ( scanf("%I64X%I64X", &a, &b) != EOF ) {
if ( a + b < 0 ) {
printf( "-%I64X\n", -a - b );
} else {
printf( "%I64X\n", a + b );
}
}
return 0;
}


* 注:在 HUST 的 Virtual Judge 上测试 AC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: