Week 01 ~ 04 : 알고리즘 문제 풀이

파이썬 백준 2748 피보나치 수 2

정글러 2021. 11. 10. 19:36
n = int(input())
if n == 1 :
    print(1)
else :
    list = [0, 1, 0]
    for i in range(n-1) :
        list[2] = list[0] + list[1]
        list[0] = list[1]
        list[1] = list[2]
    print(list[2])

a_n+a_n+1=a_n+2인 피보나치 수의 정의를 이용

n번째 피보나치 수를 구하기 위해 for문.이 n번 돌아가니 큰 n에 대해서는 쓰기 힘들다

큰 n을 다루는 변형문제도 있던데 그땐 하노이의 탑처럼 수학적으로 구해둔 일반항을 출력하는 것이 맞을 것 같다.

근데 피보나치는 일반항에 무리수가 들어가는데 정확한 값이 나올진 몰루