본문 바로가기

Programmers/Level1

콜라츠 추측

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
    public int solution(int num) {
        long lNum = num;
        int answer = 0;
        while (lNum != 1) {
            if (lNum % 2 == 0) {
                lNum /= 2;
            } else {
                lNum = lNum * 3 + 1;
            }
            answer++;
            if(answer == 500) {
                answer = -1;
                break;
            }
        }
        return answer;
    }
}
cs

num에 3을 곱할 때 int의 범위를 넘어가는 경우가 생긴다.

그러므로 long으로 해결해야 한다.

'Programmers > Level1' 카테고리의 다른 글

하샤드 수  (0) 2021.07.07
최대공약수와 최소공배수  (0) 2021.07.07
정수 제곱근 판별  (0) 2021.07.07
평균 구하기  (0) 2021.07.07
제일 작은 수 제거하기  (0) 2021.07.07