描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在1≤n≤2^31-1
输入描述
输入一个十六进制的数值字符串。
输出描述
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
我的代码(python)
h = input()
print(int(h,16));
执行情况
44ms,4616KB
哈哈Python超方便,但是执行也寄啦!
C++
#include <iostream>
#include <vector>
#include "math.h"
using namespace std;
void trans(vector<int> &dec,vector<char> &hex_vec){
for(char tmp:hex_vec){
int ascii = (int)tmp;
if(ascii <= 57){ // 数字
dec.push_back(ascii-48);
}else{ //字母
dec.push_back(ascii-55);
}
}
}
int main() {
string hex;
getline(cin,hex);
vector<char> hex_vec(hex.begin()+2,hex.end());
vector<int> dec;
trans(dec,hex_vec);
int out = 0;
int len = dec.size()-1;
for(int i=0;i<=len;i++){
out += dec[i]*pow(16,len-i);
}
cout << out;
}
执行情况
4ms,444KB