Задача к ЕГЭ по информатике на тему «одна функция» №1

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

F (n) = 3  , при n ≤ 3

F (n) = 5+ F (n∕2 − 4)  , когда n > 3 и четное

F (n) = n+ F (n + 2)  , когда n > 3 и нечетное

Назовите минимальное значение n, для которого F(n) = 43.

def f(n):
    # Дописываем условие насчёт натуральных чисел
    if n < 1:
        return 0
    if n <= 3:
        return 3
    if n > 3 and n % 2 == 0:
        return 5 + f(n/2 - 4)
    # Вместо n + f(n+2) вставляем 0,
    # нам нужно не допускать нечётные числа,
    # так как при них рекурсия продолжается бесконечно — каждый раз прибавляется значение,
    # не меняющее чётность и не приближающее к n < 3
    if n > 3 and n % 2 != 0:
        return 0

for n in range(1, 10000):
    if f(n) == 43:
        print(n)
        break

Ответ: 2296
Оцените статью
Я решу все!