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을 다루는 변형문제도 있던데 그땐 하노이의 탑처럼 수학적으로 구해둔 일반항을 출력하는 것이 맞을 것 같다.
근데 피보나치는 일반항에 무리수가 들어가는데 정확한 값이 나올진 몰루
'Week 01 ~ 04 : 알고리즘 문제 풀이' 카테고리의 다른 글
파이썬 백준 9205 맥주 마시면서 걸어가기 (0) | 2021.11.10 |
---|---|
파이썬 백준 17478 재귀함수가 뭔가요? (0) | 2021.11.10 |
파이썬 백준 2468 안전 영역 (0) | 2021.11.09 |
파이썬 백준 10971 외판원 순회 2 (0) | 2021.11.09 |
파이썬 백준 10819 차이를 최대로 (0) | 2021.11.09 |