Условие: № 10099 Досрочная волна 2024 (Уровень: Базовый)
• Статья подготовлена командой itpy, подписывайтесь на наш телеграм канал!
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n при n > 2024; F(n) = n * F(n + 1), если n ≤ 2024.
Чему равно значение выражения F(2022) / F(2024)?
import sys
sys.setrecursionlimit(10000)
def F(n):
if n > 2024:
return n
if n <= 2024:
return n * F(n + 1)
print(F(2022) / F(2024))
Комментарии к решению:
- import sys - импортируем модуль sys, который предоставляет функциональность, связанную с системой. В нашем случае, он поможет избавиться от лимита рекурсии в python.
- sys.setrecursionlimit(10000) - устанавливаем максимальную глубину рекурсии равной 10000. На месте 10000 может быть любое число, главное чтобы оно превышало наибольшее n (в нашем случае ≥ 2024).
- def F(n): - создаем функцию с именем F и параметром n.
- if n > 2024: - проверяем условие “если значение n больше 2024”.
- return n - возвращаем значение n.
- if n <= 2024: - проверяем условие “если значение n меньше или равно 2024”.
- return n * F(n + 1) - возвращаем произведение значения n и рекурсивного вызова функции F с аргументом n + 1.
- print(F(2022) / F(2024)) - выводим результат деления функции F с аргументом 2022 на функцию F с аргументом 2024.