B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)
B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.
첫째 줄에 B진법 수 N을 10진법으로 출력한다.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split(' ');
const [N,B] = input[0].split(' ')
function convertToDecimal (number, base) {
let reslut = 0;
const digits = N.split('');
for(let i=0; i<digits.length; i++) {
let digit = digits[i];
let value=0;
if(digit>='A' && digit<='Z') {
value = digit.charCodeAt(0)-55; // A가 65부터 시작하는데 여기선 10부터 시작하니가 맵핑해주려고 뺌
}else {
value = parseInt(digit);
}
result += value * Math.pow(base, digits.length-1-i);
}
return result;
}
const decimal = converToDecimal(N, parseInt(B));
console.log(decimal);