题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
console.log(parse16To10(line))
});
const numMap = {
0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
a: 10,
b: 11,
c: 12,
d: 13,
e: 14,
f: 15
}
const multi = (num, pow) => {
if (num === 0) {
return 1;
}
let n = 1;
for (let i = 0; i < num; i++) {
n = n * pow;
}
return n;
}
const parse16To10 = str => {
let strs = str.slice(2).toLocaleLowerCase().split('').reverse();
let res = 0
const arr = strs.map((item, index) => {
return numMap[item] * multi(index, 16)
});
res = arr.reduce((res, item) => res + item);
return res;
}
查看10道真题和解析