https://www.acmicpc.net/problem/10870
10870: 피보나치 숫자 5
피보나치 수는 0과 1로 시작합니다.
0번째 피보나치 수는 0이고 첫 번째 피보나치 수는 1입니다.
두 번째 지점부터는 바로 앞의 두 피보나치 수의 합입니다.
이것을 방정식으로 쓰면 Fn = Fn-1 + Fn-2(n ≥ 2)
www.acmicpc.net
설명
재귀로 해결
무한 반복에 빠지지 않으려면 재귀를 중지하는 조건을 설정해야 합니다.
0과 1에서는 더 이상 재귀할 필요가 없으므로 값을 반환하고 재귀를 중지합니다.
재귀 함수의 깊이가 너무 깊어지면 Python이 스스로 감지하여 강제로 중지합니다.
재귀 함수의 최대 깊이를 조정하려면 sys.setrecursionlimit(최대 깊이 값)를 설정해야 합니다.
이 문제에 대해 별도로 설정할 필요가 없습니다.
n = int(input())
def f(n):
if n== 0:
return 0
elif n == 1:
return 1
elif n==2:
return 1
return f(n-1) + f(n-2)
print(f(n))