Untitled

Условие КЕГЭ: Тип 5 № 610 Условие Поляков: Тип 16 № 3123

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

F(n) = 1 + 2·n при n < 5
F(n) = 2·(n + 1)·F(n–2), если n ≥ 5 и делится на 3,
F(n) = 2·n + 1 + F(n–1) + 2·F(n–2), если n ≥ 5 и не делится на 3.

Чему равно значение функции F(15)?

Вариант 1: решение через рекурсивную функцию

Вариант 1: решение через рекурсивную функцию

Комментарии к первому варианту решения задачи:

  1. создаем функцию, которая будет принимать и обрабатывать значение функции
  2. если наше n < 5
  3. то возвращаем 1 + 2*n
  4. если наше n ≥ 5 и делится на 3
  5. то возвращаем 2 * (n + 1) * F(n – 2) # то есть используем рекурсию
  6. и если n ≥ 5 и не делится на 3
  7. то возвращаем 2 * n + 1 + F(n–1) + 2 * F(n–2)
  8. вызываем функцию передавая ей в качестве аргумента n = 15
# Код решения Вариант 1
def F(n):
    if n < 5:
        return 1 + 2 * n
    if n >= 5 and n % 3 == 0:
        return 2 * (n + 1) * F(n - 2)
    if n >= 5 and n % 3 != 0:
        return 2 * n + 1 + F(n - 1) + 2 * F(n - 2)
print(F(15))

Ответ: