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

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

F (1) = 0  , F(2) = 1  , F(3) = 1

                  2 F (n) = F(n − 1) +n + F(n − 2)  ,при n > 3  » class=»math» src=»/images/inform/quest/quest-4470-7.svg» width=»auto»> </p>
<p class= Чему будет равно значение, вычисленное при выполнении вызова F(19)  ?

Решение динамикой:

f = [0] * 1000
for n in range(1, 1000):
    if n == 1:
        f[n] = 0
    if n == 2:
        f[n] = 1
    if n == 3:
        f[n] = 1
    if n > 3:
        f[n] = f[n - 1] + n * n + f[n - 2]
print(f[19])

Решение рекурсией:

def F(n):
    if n == 1:
        return 0
    if n == 2 or n == 3:
        return 1
    if n > 3:
        return F(n - 1) + n ** 2 + F(n - 2)


print(F(19))

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