콜라츠 추측

민태영·2023년 5월 31일
0

문제) 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.

function solution(num) {
    let number = num
    let cnt = 0;
//     number가 1인경우 0을 리턴해버린다.
    if(number === 1) {
        return 0
    }
//      number이 1보다 클때까지 실행되도록 조건을 건다
    while(number > 1) {
        if(number % 2 === 0) {
//             number가 짝수일때 2를 나눈 값을 number 재할당
            number = number / 2
//             한 작업을 완료할 때마다 cnt로 카운터를 세어준다.
            cnt++

        } else {
//             number가 홀수일 때 3을 곱하고 1을 더한 값을 재할당
            number = (number * 3) + 1
            cnt++

        }
//         만약 cnt가 500이 넘는 경우 -1을 리턴해준다.
        if(cnt > 500) {
            return -1;
        }
    }
    return cnt;
    
}
profile
꿈을 꾸는 개발자

0개의 댓글