コーラ推測(JavaScript)
問題の説明
1937年にCollatzが提案したこの推測は,与えられた数が1になる前に次のタスクを繰り返し実行すれば,すべての数を1にすることができるということである.操作は次のとおりです.
1-1. 入力した数字が偶数の場合は2に分けられます.
1-2. 入力した数字が奇数の場合、3を掛けて1を加算します.
2.結果が1になるまで、同じ操作を繰り返します.
例えば、入力された数字が6であれば、6→3→10→5→16→8→4→2→1の計8回が1となる.上記の操作を何回繰り返すかを示す関数を返します.解決策を完了します.ただし、タスクを500回繰り返しても1未満の場合は、-1を返します.
せいげんじょうけん
入力された数値numは1または800000未満の整数です.
I/O例
nresult68164626331-1
問題を解く
function solution(num) {
let answer = -1
for (let i = 0; i < 500; i++) {
if (num === 1) {
answer = i
break
}else {
if (num % 2 === 0) {
num /= 2
}else {
num = (num*3) + 1
}
}
}
return answer
}
500回繰り返しても
1
未満であれば、-1
を返却するためにanswer
を-1
と宣言します.num
の値が1
の場合、繰り返し回数i
が返されます.num
の値は1
ではなく、偶数は2に分けられます.num
の値は1
ではなく、奇数の場合は3に1を乗算します.answer
を返却します.Reference
この問題について(コーラ推測(JavaScript)), 我々は、より多くの情報をここで見つけました https://velog.io/@weffa/콜라츠-추측javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol