Задача #1837

Рекурсия

Уровень ЕГЭ

(М. Паршиков) Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:

F(n)=n, при n3000
F(n)=n+x+F(n+2), при n<3000

При каком целом значении х, значение выражения F(2984)F(2988)=5916

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

Ответ

-27

1 способ решения
Заметим, что каждое значение функции зависит от следующего значения с той же четностью. Значит можно выразить F(2984) через F(2988):
F(2984)=2984+x+F(2986)
F(2986)=2986+x+F(2988)
F(2984)=2984+x+2986+x+F(2988)=5970+2x+F(2988)
Далее уже подставим F(2984) в выражение из вопроса и найдем х:
F(2984)F(2988)=5916
5970+2x+F(2988)F(2988)=5916
2x=54
x=27

2 способ решения

for x in range(-100, 100):
f = [0] * 3003
for n in range(3002, 1, -1):
if n >= 3000:
f[n] = n
else:
f[n] = n + x + f[n + 2]
if f[2984] - f[2988] == 5916:
print(x)
break
Быстрый переход
Перейти к задаче