题解 | #进制转换#

进制转换

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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务