フリップバイナリ


https://programmers.co.kr/learn/courses/30/lessons/68935
問題の説明
パラメータは自然数nを与える.nを三進法で前後に逆さまにし、それを十進法で表す数で返し、解関数を完成させる.
せいげんじょうけん
nは10000000を超える自然数である.
I/O例
nresult457125229
I/O例説明
I/O例#1
答えは次のとおりです.
n(10進法)n(2進法)前後反転(2進法)10進法表現4512000217
したがって、7を返さなければなりません.
I/O例#2
答えは次のとおりです.
n(10進法)n(2進法)n(2進法)前後反転(2進法)10進法表現1251122,221,2229
したがって、229に戻る必要があります.
説明する
function solution(n) {
  //10진법을 3진법으로 바꾸기
    var three = n.toString(3);
  //
    var rever = String(three).split('').reverse();
    var ten = Number(rever);
    // // 2, 8, 16 진법 -> 10진법으로 변환
    // var answer=Number.parseInt(rever, 3);    // 10
    
    
    return rever;
}

console.log(solution(45))
結果
Reverまでは[‘0’‘0’‘2’‘1’]
数字なので結果値はNaN
PRaseINTを行うと、結果値は0になります.
もちろん「0021」状態で数字をあげるのではなく、配列に数字がある場合に数字をあげるのです!
最終回答
function solution(n) {
    //10진수를 3진수로 바꾸기
    var three = n.toString(3);

    var rever = String(three).split('').reverse().join('')
    var ten = Number(rever);
    
    //3진수를 10진수로 바꾸기
    var answer=Number.parseInt(rever, 3);
    
    
    return answer;
}
別の解釈
function solution(n) {
    return parseInt(n.toString(3).split('').reverse().join(''), 3);
}