본문 바로가기
Algorithm

[구현/수학] 백준 14920 3n+1 수열 - 파이썬(Python)

by jangThang 2022. 12. 2.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    14920번: 3n+1 수열

    다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자: C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때) 초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다.

    www.acmicpc.net

     

     

     

    2. 문제 풀이

    C(n+1) = C(n)/2 (C(n)이 짝수일 때)
                = 3*C(n)+1 (C(n)이 홀수일 때)

     다음과 같은 규칙을 가진 수열이 있습니다. 입력으로 C(1)이 주어지며, C(n) = 1이 되는 n을 찾아야 합니다.

     

     

     

    3. 코드

    # 입력
    c = int(input())
    
    # C(n)이 1이 되면 break
    for n in range(1, 100001):
        if c == 1:
            print(n)
            break
    
        # 짝수일 때
        if c % 2 == 0:
            c //= 2
    
        # 홀수일 때
        else:
            c = 3*c + 1

     수열의 규칙대로 그대로 구현하고, 처음으로 c(n) = 1이 되는 n을 찾습니다.

     

    star가 되고나서 Tistory

    반응형

    댓글