콜라츠 추측

RyuIsangGo🤘·2023년 8월 21일
0

문제

나의코드

const solution = (n) => {
    if(n === 1) return 0;
    for (let i = 1; i <= 500; i++) {
        if(n % 2 === 0) n /= 2;
        else n = n*3 + 1;
        
        if(n === 1) return i;
    }
    return -1;
}

로직흐름

  1. 만약 n이 1이면 0을 반환한다.
  2. 1부터 500까지 반복하면서 n을 반복해나간다.
    현재 n이 짝수면 2로 나눈 값으로 n을 변경하고, 홀수면, nx3+1로 값을 변경한다.
    이렇게 변경된 n이 1이라면 현재 몇번째 반복중인지 횟수를 반환한다.
  3. 반복문을 빠져나왔다는 말은 500번 안에 n이 1이 되지 않았다는 말이므로, -1을 반환한다.
profile
이전 블로그 입니다.

0개의 댓글