Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12121 Accepted Submission(s): 7782 Problem Description Many classmates said to me that A+B is must needs. Input Input may contain multiple test cases. Each case contains A and B in one line. 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 HZIEE 2007 Programming Contest
Recommend lcy |
题记:
这道题的意思是,输入两个十六进制的数,相加,和转换为十进制输出出来。
A,B大小写都可以。
C++程序如下:
#include <iostream>
using namespace std;
int convert(char a){
if(a>='0' && a<='9')
return a-'0';
if(a>='A' && a<='F')
return a-'A'+10;
if(a>='a' && a<='f')
return a-'a'+10;
}
int main(){
char sa[1005], sb[1005];
int a, b;
while(cin >> sa >> sb){
a=0;
b=0;
for(int i=0; sa[i]!='\0'; i++)
a = a*16 + convert(sa[i]);
for(int j=0; sb[j]!='\0'; j++)
b = b*16 + convert(sb[j]);
cout << a+b << endl;
}
return 0;
}