Задание №16 — Рекурсия
#69826Задание №16ФИПИ
Рекурсия
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n при n > 2024;
F(n) = n × F(n + 1), если n ≤ 2024.
Чему равно значение выражения F(2022) / F(2024)?
Правильный ответ
4090506
Пояснение
Решение:
Рекурсия здесь «раскручивается» вверх: пока аргумент не превосходит 2024, функция домножает его на значение для следующего числа, а на аргументе больше 2024 вычисления обрываются и функция просто возвращает своё . Поэтому нужные значения выписываются в пару строк.
Так как , то , а значит . Дальше по той же формуле и .
Огромный общий множитель сокращается, и считать его не нужно: .
import sys
sys.setrecursionlimit(10000)
def F(n):
if n > 2024:
return n
return n * F(n + 1)
print(F(2022) // F(2024)) # 4090506
Ответ: 4090506