Функция f(n), где n – натуральное число, задана следующим образом: паскаль function f(n: integer): integer; begin if n > 1 then f : = 2*n + f(n-2)+f(n-3) else f : = n + 5; end; чему будет равно значение, вычисленное алгоритмом при выполнении вызова f(6)?

Arisha7575 Arisha7575    2   03.09.2019 08:00    0

Ответы
EgorKuleshov EgorKuleshov  06.10.2020 14:15
Имеем рекуррентное соотношение для F(n):
F(n) = 2n + F(n - 2) + F(n - 3) при n > 1, и n + 5 иначе.

F(-1) = -1 + 5 = 4
F(0) = 0 + 5 = 5
F(1) = 1 + 5 = 6
F(2) = 2 * 2 + F(0) + F(-1) = 4 + 5 + 4 = 13
F(3) = 2 * 3 + F(1) + F(0) = 6 + 6 + 5 = 17
F(4) = 2 * 4 + F(2) + F(1) = 8 + 13 + 6 = 27
F(5) = 2 * 5 + F(3) + F(2) = 10 + 17 + 13 = 40
F(6) = 2 * 6 + F(4) + F(3) = 12 + 27 + 17 = 56

ответ. F(6) = 56.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика