A+B Coming
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3906 Accepted Submission(s): 2456
Total Submission(s): 3906 Accepted Submission(s): 2456
Problem Description
Many classmates said to me that A+B is must needs.
If you can’t AC this problem, you would invite me for night meal. ^_^
If you can’t AC this problem, you would invite me for night meal. ^_^
Input
Input may contain multiple test cases. Each case contains A and B in one line.
A, B are hexadecimal number.
Input terminates by EOF.
A, B are hexadecimal number.
Input terminates by EOF.
Output
Output A+B in decimal number in one line.
Sample Input
1 9 A B a b
Sample Output
10 21 21
————————————————————————————————————————————————————
/****************************
*Name:A+B Coming.c
*Tags:ACM water
****************************/
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char ha[100], hb[100];
int da, db, la, lb, i;
while(scanf("%s%s", ha, hb) != EOF) {
la = strlen(ha);
lb = strlen(hb);
da = 0;
db = 0;
for(i = 0; i < la; i++) {
if(ha[i] >= 'A' && ha[i] <= 'F') {
da += ((ha[i]-'A')+10)*pow(16, la-i-1);
}
else if(ha[i] >= 'a' && ha[i] <= 'f') {
da += ((ha[i]-'a')+10)*pow(16, la-i-1);
}
else {
da += (ha[i]-'0')*pow(16, la-i-1);
}
}
for(i = 0; i < lb; i++) {
if(hb[i] >= 'A' && hb[i] <= 'F') {
db += ((hb[i]-'A')+10)*pow(16, lb-i-1);
}
else if(hb[i] >= 'a' && hb[i] <= 'f') {
db += ((hb[i]-'a')+10)*pow(16, lb-i-1);
}
else {
db += (hb[i]-'0')*pow(16, lb-i-1);
}
}
printf("%d\n", da+db);
}
return 0;
}