A+B Coming
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3833 Accepted Submission(s): 2403
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
Author
威士忌
Source
Recommend
lcy
代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char a[100],b[100];
int sum,i1,i2,t;
while(scanf("%s%s%*c",&a,&b)!=EOF)
{
sum=0;
for(t=i1=strlen(a)-1;i1>=0;i1--)
{
switch(a[i1])
{
case 'A':case 'a':sum+=10*(int)pow(16,t-i1);break;
case 'B':case 'b':sum+=11*(int)pow(16,t-i1);break;
case 'C':case 'c':sum+=12*(int)pow(16,t-i1);break;
case 'D':case 'd':sum+=13*(int)pow(16,t-i1);break;
case 'E':case 'e':sum+=14*(int)pow(16,t-i1);break;
case 'F':case 'f':sum+=15*(int)pow(16,t-i1);break;
default :sum+=(a[i1]-'0')*(int)pow(16,t-i1);break;
}
}
for(t=i2=strlen(b)-1;i2>=0;i2--)
{
switch(b[i2])
{
case 'A': case 'a': sum+=10*(int)pow(16,t-i2);break;
case 'B': case 'b': sum+=11*(int)pow(16,t-i2);break;
case 'C': case 'c': sum+=12*(int)pow(16,t-i2);break;
case 'D': case 'd': sum+=13*(int)pow(16,t-i2);break;
case 'E':case 'e': sum+=14*(int)pow(16,t-i2);break;
case 'F':case 'f': sum+=15*(int)pow(16,t-i2);break;
default :sum+=(b[i2]-'0')*(int)pow(16,t-i2);break;
}}
printf("%d\n",sum);
}
return 0;
}