- 原题链接:Here!
- 刚刚学时想手动模拟十六进制加减法,Too young
- 注意:十六进制输入十六进制输出就ok。
题目告知A长度不会超过15位,A最大为fffffffffffffff,转换成10进制为 1152921504606847046,long long范围是-2^63~+2^63-1, +MAX: 9223372036854775807,所以long long足够了。
需要注意的是如果用long long,输入和输入时都需要写成 %llX ,%x和%X分别对应十六进制中字母小写和字母大写,需要对结果<0时做一些处理,这样就AC了~
- CODE:
Too young
#include<cstdio> using namespace std; //#define test int main(){ long long A,B; #ifdef test freopen("Hdu 2057.txt","r",stdin); #endif while(scanf("%llX%llX",&A,&B)!=EOF){ if(A+B<0) printf("-%llX\n",(A+B)*-1); else printf("%llX\n",A+B); } }
HDU 2057 A + B Again(水)
最新推荐文章于 2020-04-14 03:24:03 发布