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

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

F (n) = 1  при n = 1

G (n) = 1  при n = 1

F (n) = F(n − 1) +2 ⋅G(n − 1), при n > 1  » class=»math» src=»/images/inform/quest/quest-4422-7.svg» width=»auto»> </p>
<p class= G (n) = F(n − 1) − 3 ⋅G(n − 1), при n > 1  » class=»math» src=»/images/inform/quest/quest-4422-8.svg» width=»auto»> </p>
<p class= Чему равна сумма цифр значения функции F(20)?

Решение программой:

from functools import lru_cache

def sum_of_digits(n): # Функция,подсчитывающая сумму цифр числа
    s = 0
    while n > 0:
        s += n % 10
        n //= 10
    return s

@lru_cache(None)
def f(n):
    if n == 1:
        return 1
    if n > 1:
        return f(n - 1) + 2 * g(n - 1)

@lru_cache(None)
def g(n):
    if n == 1:
        return 1
    if n > 1:
        return f(n - 1) - 3 * g(n - 1)

print(sum_of_digits(f(20)))

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