백준 BaekJoon Online Judge // 10870
2021. 1. 25. 14:56ㆍProgramming/BOJ
백준 알고리즘 BaekJoon Online Judge 10870번 "피보나치 수 5" 문제입니다.
def fibb(N):
if N == 0:
return 0
elif N == 1:
return 1
else:
return fibb(N-1) + fibb(N-2)
n = int(input())
print(fibb(n))
재귀 함수를 사용하여 피보나치 함수를 구현하는 문제다.
피보나치 수는 처음 두 개의 수는 0과 1로 시작하고 그 후의 수는 직전 2개의 수를 더한 값이다.
즉 0, 1, 1, 2, 3, 5, 8, 13... 으로 나열되는 수열을 피보나치 수열이라고 한다.
재귀 함수를 탈출구가 있어야 한다고 전 재귀 함수 포스트에서 말한바있다.
따라서 이번에도 탙출구인 N이 0 이나 1일 경우를 만들고 3번째 수부터는 직전 2개의 수를 더한 값이므로
fibb(N-1) + fibb(N-2)를 리턴해주면 피보나치 재귀 함수가 완성된다.
'Programming > BOJ' 카테고리의 다른 글
백준 BaekJoon Online Judge // 2798 (0) | 2021.01.26 |
---|---|
백준 BaekJoon Online Judge // 11729 (0) | 2021.01.25 |
백준 BaekJoon Online Judge // 10872 (0) | 2021.01.23 |
백준 BaekJoon Online Judge // 3053 (0) | 2021.01.23 |
백준 BaekJoon Online Judge // 4153 (0) | 2021.01.23 |