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
korolev-comitet8825
25.08.2022
Это может быть любое число, которое на 11 больше, чем число кратное 15. Например, 105 делится на 15 нацело. Значит число 116 вполне подходит под задуманное Ипполитом.
Пример программы (и, соответственно, алгоритма), при которого можно получить такой список - во вложении.
ldstroy
25.08.2022
Это может быть любое число, которое на 11 больше, чем число кратное 15. Например, 105 делится на 15 нацело. Значит число 116 вполне подходит под задуманное Ипполитом.
Данную задачу можно решить по крайней мере двумя
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