▶ 문제
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면,
모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.
★ 풀이방식
num을 int->long으로 변환하지 않으면 488로 다르게 나온다.
연산 과정에서 오버플로우가 발생, public int solution(long num) 으로 바꿔야한다.
▶ 소스코드
class Solution {
public int solution(long num) {
int answer = 0;
while(num!=1){
if(num%2==0) num/=2;
else num=num*3+1;
answer++;
if(answer>500) {
answer=-1; break;
}
}
return answer;
}
}
'JAVA 알고리즘' 카테고리의 다른 글
(JAVA) 실제 정수들의 합을 구하여 return 하도록 함수 완성하기 (0) | 2024.09.19 |
---|---|
(JAVA) 단어 s의 가운데 글자를 반환하는 함수 (0) | 2024.09.19 |
(JAVA) 두 정수 사이에 속한 모든 정수의 합을 리턴하는 함수 (0) | 2024.09.14 |
(JAVA) 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수 (0) | 2024.09.14 |
(JAVA) 각 자릿수를 큰것부터 작은 순으로 정렬한 정수 리턴 받기 (0) | 2024.09.14 |