Top.Mail.Ru
Ответы
Аватар пользователя
1нед
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Написал рекурсию по заданию, не хочет выводить ответ, после того, как я отключаю программу, вылазят ошибки

12345678910
import sys
sys.setrecursionlimit(10000)
def F(n):
    if n <= 1:
        return 1
    elif (n > 1) and (n%3 == 0):
        return F(n-1) + n/3
    else:
        return F(n-1) + F(n-2)
print(F(54)-F(52)-F(50))
По дате
По рейтингу
Аватар пользователя
Мыслитель
1нед

Вот этот кусок бессмысленен, можно убрать, слегка сэкономишь время

1
(n > 1) and

Так выполняется около 5 мин в виртуалке под райзеном 5600G

Для оптимизации можно - убрать питон, убрать рекурсию, при старте вычислить таблицу значений и дальше брать значения из нее