フリップバイナリ
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に戻る必要があります.
説明する
Reverまでは[‘0’‘0’‘2’‘1’]
数字なので結果値はNaN
PRaseINTを行うと、結果値は0になります.
もちろん「0021」状態で数字をあげるのではなく、配列に数字がある場合に数字をあげるのです!
最終回答
問題の説明
パラメータは自然数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);
}
Reference
この問題について(フリップバイナリ), 我々は、より多くの情報をここで見つけました https://velog.io/@123cjstj/3진법-뒤집기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol