Задача к ЕГЭ по информатике на тему «Рекурсивные алгоритмы» №1

Ниже записаны две рекурсивные функции F и G:

F (n) = n⋅n  , при n ≤ 2

F (n) = F(n − 2) +G (n− 1)⋅2 − n  , при n > 2  » class=»math» src=»/images/inform/quest/quest-5349-4.svg» width=»auto»> </p>
<p class= G (n) = n+ 1  , при n ≤ 2

G (n) = G(n − 1) + F(n− 2)+ n  , при n > 2  » class=»math» src=»/images/inform/quest/quest-5349-8.svg» width=»auto»> </p>
<p class= Помогите МС определить числовое значение выражения ∘ -------------------------   ∘F-(5)+-G(3)+ G(3)+ G (2)

from math import *

# Определяем рекурсивную функцию f(n)
def f(n):
    if n <= 2:  # Если n меньше или равно 2
        return n * n  # Возвращаем квадрат n
    if n > 2:  # Если n больше 2
        return f(n - 2) + g(n - 1) * 2 - n  # Рекурсивно вызываем f и g, выполняем арифметические операции и возвращаем результат

# Определяем рекурсивную функцию g(n)
def g(n):
    if n <= 2:  # Если n меньше или равно 2
        return n + 1  # Возвращаем n + 1
    if n > 2:  # Если n больше 2
        return g(n - 1) + f(n - 2) + n  # Рекурсивно вызываем g и f, выполняем арифметические операции и возвращаем результат

# Вычисляем конечный результат, используя функцию sqrt из библиотеки math

print(sqrt(sqrt(f(5) + g(3)) + g(3) + g(2)))

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