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 |