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

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

F (n) = 2⋅(1+ n)  при n < 5

F (n) = (n+ 1)⋅F (n − 2)  , если n ≥ 5  и n делится на 3,

F (n) = 1+ F (n − 1)+ F(n − 2)  , если n ≥ 5  и n не делится на 3.

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

Решение руками

Последовательно находим:

F (1) = 4  ;

F (2) = 6  ;

F (3) = 8  ;

F (4) = 10  ;

F (5) = 1+ F(4)+ F (3) = 1+ 10+ 8 = 19  ;

F (6) = 7⋅F(4) = 7 ⋅10 = 70  ;

F (7) = 1+ F(6)+ F (5) = 1+ 70+ 19 = 90  ;

F (8) = 1+ F(7)+ F (6) = 1+ 90+ 70 = 161  ;

F (9) = 10⋅F(7) = 10 ⋅90 = 900  ;

F (10) = 1+ F(9)+ F (8) = 1+ 900+ 161 = 1062;

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

def f(n):
    if n < 5:
        return 2*(1+n)
    if n % 3 == 0:
        return (n+1)*f(n-2)
    return 1+f(n-1)+f(n-2)

print(f(10))

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