Данную задачу можно решить по крайней мере двумя
I (рекурсивно) Быстро работает при N <= 30 (примерно):
F = lambda N: F(N - 1) + F(N - 2) if N > 1 else N
II (циклом). Быстро работает при N <= 25000 (примерно):
def F(N):
fibs = [0, 1]
while len(fibs) <= N:
fibs.append(fibs[-2] + fibs[-1])
return fibs[-1] if N > 0 else 0
Данную задачу можно решить по крайней мере двумя
I (рекурсивно) Быстро работает при N <= 30 (примерно):
F = lambda N: F(N - 1) + F(N - 2) if N > 1 else N
II (циклом). Быстро работает при N <= 25000 (примерно):
def F(N):
fibs = [0, 1]
while len(fibs) <= N:
fibs.append(fibs[-2] + fibs[-1])
return fibs[-1] if N > 0 else 0