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;
}

浙公网安备 33010602011771号