우박수 수열
의견: 0
양의 정수 \(n\)이 주어졌을 때, 다음 규칙을 반복하여 적용한다.
- \(n\)이 짝수이면 \(n\)을 \(\dfrac{n}{2}\)로 바꾼다.
- \(n\)이 홀수이면 \(n\)을 \(3n + 1\)로 바꾼다.
이 과정을 계속하면 결국 \(n\)이 \(1\)이 된다고 알려져 있다 (콜라츠 추측). \(n\)이 처음으로 \(1\)이 될 때까지 위 연산을 몇 번 적용해야 하는지 구하여라.
예를 들어 \(n = 6\)이면 \(6 \to 3 \to 10 \to 5 \to 16 \to 8 \to 4 \to 2 \to 1\)로 총 \(8\)번 만에 \(1\)에 도달한다. 처음부터 \(n = 1\)이면 연산을 한 번도 하지 않으므로 답은 \(0\)이다.
\(1 \le n \le 10^6\).
첫째 줄에 정수 \(n\)이 주어진다.
\(n\)이 처음으로 \(1\)이 될 때까지 연산을 적용한 횟수를 한 줄에 출력한다.
6
8
\(6 \to 3 \to 10 \to 5 \to 16 \to 8 \to 4 \to 2 \to 1\)로 \(8\)번이다.
1
0
이미 \(1\)이므로 연산을 한 번도 적용하지 않는다. 답은 \(0\)이다.
막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.
riseoj 작성
출처 Original
평가 및 의견
우박수 수열
Log in to rate problems.
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
우박수 수열