№16 · решено
Две функции
Алгоритм вычисления функций F(n) и G(n) задан соотношениями: F(n) = 3 · (G(n − 2) + 5); G(n) = 2 · n, если n < 10; G(n) = G(n − 4) + 1, если n ≥ 10. Чему равно значение F(200)?
Учебная задача
Ответвпиши то, что вывела программа
Показать разбор
- Перепиши обе функции из условия.
- F считается через G, поэтому главная работа идёт в G: она спускается с шагом 4 до значений меньше 10.
- Поставь @lru_cache(None) на обе функции, так надёжнее.
- Напечатай F(200).
from functools import lru_cache
@lru_cache(None)
def F(n):
return 3 * (G(n - 2) + 5)
@lru_cache(None)
def G(n):
if n < 10:
return 2 * n
if n >= 10:
return G(n - 4) + 1
print(F(200))