단순 콜라츠 수열

면접 대비

시간 제한1초메모리 제한512 MB

요약
주어진 수 n에서 시작해 짝수는 2로 나누고 홀수는 1을 더하는 규칙을 1에 도달할 때까지 반복하며 걸음 수를 센다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 구현, 수학
정답자
아직 제출이 없습니다

문제

정수 nn에서 시작하는 단순 콜라츠 수열(SCS)은 다음 식으로 정의된다.

S(k)={k/2k가 짝수일 때k+1k가 홀수일 때S(k) = \begin{cases} k/2 & k\text{가 짝수일 때} \\ k+1 & k\text{가 홀수일 때} \end{cases}

수열은 n,S(n),S(S(n)),…n, S(n), S(S(n)), \dots처럼 이어지며, 값이 처음으로 1에 도달하면 끝난다.

예를 들어 11에서 시작하면 다음과 같다.

11 -> 12 -> 6 -> 3 -> 4 -> 2 -> 1

이 수열은 항상 1에서 끝난다. (재미있는 사실: 어려운 콜라츠 수열은 홀수 kk를 3k+13k+1로 보낸다. 그 수열이 항상 1에서 끝나는지는 알려져 있지 않다.)

A(n)A(n)을 nn에서 시작하는 SCS의 걸음 수라고 하자. 예를 들어 A(11)=6A(11) = 6이다. 주어진 입력 nn에 대해 A(n)A(n)을 계산하는 프로그램을 작성하시오.

입력

입력은 수열을 시작하는 양의 십진 정수 nn을 담은 한 줄로 이루어진다. nn은 32비트 부호 없는 정수에 들어간다.

출력

출력은 nn에서 시작하는 SCS의 걸음 수인 A(n)A(n)의 값을 담은 한 줄로 이루어진다.

예제2

  1. 예제 1

    입력
    11
    
    예상 출력
    6
    
  2. 예제 2

    입력
    123456789
    
    예상 출력
    39