A + B Again
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 28319 Accepted Submission(s): 11488
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 !
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.
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
Author
linle
Source
Recommend
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
#include <set>
#include<algorithm>
#include <limits.h>
#include <ctype.h>
#include <map>
#include <stack>
#include <sstream>
typedef long long LL;
using namespace std;
const int N = 105;
int data[N][N];
int dp[N][N];
char c[100][100] = {' '};
#define PI 3.1415926
typedef __int64 LL;
int main() {
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
//涉及到16进制内的加法,
//可以用%I64x直接来处理,
//要注意到16进制中负数是用补码来表示的。
//一个比较困惑的事实是,
//这道题再输出时,
//%64X中‘X’必须是大写,小写是过不了的。
LL a, b;
while(scanf("%I64X %I64X", &a, &b) != EOF){
LL ans = a + b;
if(ans < 0){ //16进制没有负数输出
printf("-");
ans = -ans;
}
printf("%I64X\n", ans);
}
return 0;
}