A + B Again
参考链接: https://www.cnblogs.com/NYNU-ACM/p/4236795.html
题上说的A 和B 的长度不超过15,因为A和B 是十六进制数,如果长度不考虑正负号的话,一个数字表示4位二进制数,所以A 、B的位数是60位,所以定义A、B时,要定义为64位。当然如果考虑正负号的话,A、B含有的的数字最多为14个,这时,A、B的位数为56位,当然还要定义成64位的。。然后,把A和B相加,当然还是十六进制的数,赋值给B,判断B是不是负数,如果是负的,需变成正的,输出时,添个负号即可。。。
#include <cstdio> int main() { __int64 A, B; while(scanf("%I64X %I64X", &A, &B) != EOF) { B = A + B; if(B >= 0) printf("%I64X\n", B); if(B < 0) { B = -B; printf("-%I64X\n", B); } } return 0; }