码迷,mamicode.com
首页 > 其他好文 > 详细

A + B Again

时间:2014-11-30 10:22:38      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:printf   数据   测试   

A + B Again

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 16204 Accepted Submission(s): 6996


Problem Description
There must be many A + B problems in our HDOJ , now a new one is coming.
Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too.
Easy ? AC it !

Input
The input contains several test cases, please process to the end of the file.
Each case consists of two hexadecimal integers A and B in a line seperated by a blank.
The length of A and B is less than 15.

Output
For each test case,print the sum of A and B in hexadecimal in one line.

Sample Input
+A -A +1A 12 1A -9 -1A -12 1A -AA

Sample Output
0 2C 11 -2C -90
题目给定条件:The length of A and B is less than 15.也就说两个十六进制数转换为二进制,最多只有 15*4=60位,预算结果转换为二进制,最多只有 61 位,__int64 顾名思义,是用 64 位二进制表示一个整数,因此是不会超范围的。注意这64位中最高位是符号位(表示正负),实际可用的只有 63 位 
%I64X :输出【无符号】十六进制数, 用大写字母,也就是说 %I64X 的格式【无法输出负数的】,但运算结果是有负数的。一种简单的方法就是,把负数取绝对值,然后手工添加一个负号。
程序代码:
#include<iostream> #include<iomanip> using namespace std; int main() {     __int64 a,b;     while(scanf("%I64X%I64X",&a,&b)!=EOF)     {         __int64 sum =a + b;         if(sum < 0)         {             sum =- sum;             printf("-");         }         printf("%I64X\n",sum);     } }

A + B Again

标签:printf   数据   测试   

原文地址:http://blog.csdn.net/zchlww/article/details/41620435

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!