Задача #3644

Рекурсия

Уровень ЕГЭ

(Р. Косов) Алгоритм вычисления функций F(n) и G(n), где n - целое число, задан следующими соотношениями:
F(n)=F(n6)+2048, если n>30;
F(n)=3×(G(n5)+13),, если n30;
G(n)=2×n+50, если n221337;
G(n)=G(n+11)48, если n<221337.
Чему равно значение функции F(5078)?

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

155371
from functools import *

@lru_cache(None)
def f(n):
if n > 30:
return f(n-6) + 2048
else:
return 3 * (g(n-5) + 13)

@lru_cache(None)
def g(n):
if n >= 221337:
return 2*n + 50
else:
return g(n+11) - 48

for i in reversed(range(301210)):
g(i)
for i in range(55000):
f(i)

print(f(5078))
Быстрый переход
Перейти к задаче