콜라츠 추측
function solution(num) {
let answer = 0;
for(let i =0; i<500; i++){
if(num===1){break;
}
answer++
console.log(answer,num)
if(num%2===0){
num/=2
}else{num=num*3+1}
}return num!==1?-1:answer
}
예외처리는 최상단!!!!!
왜냐하면 처음부터 1이 입력되었을 수도있음!
while문
function solution(num) {
let answer = 0;
while(num!==1){
if(answer>=500){
return -1
}
answer++
num=num%2===0
?num/2
:(num*3)+1
}return answer
}
메소드
function solution(num) {
let answer = 0;
let result = new Array( 500 )
.fill(1)
.reduce(acc=>{
if(acc!==1){
answer++
return acc%2===0
? acc/2
: (acc*3)+1;
}else{return 1}
},num)
return result!==1? -1:answer
}