Консультация № 190454
20.01.2017, 13:51
0.00 руб.
0 2 1
Здравствуйте! Прошу помощи в следующем вопросе:

Ниже на паскаль записаны две рекурсивные
функции: F и G.
function F(n: integer): integer;
begin
if n > 1 then
F := F(n - 1) + G(n - 1)
else
F := n;
end;
function G(n: integer): integer;
begin
if n > 1 then
G := G(n - 1) + F(n)
else
G := n;
end;
Чему будет равно значение, вычисленное при выполнении вызова F(5)?

Обсуждение

давно
Посетитель
7438
7205
20.01.2017, 14:17
общий
Адресаты:
Если интересует просто ответ, то при вычислении F(5) получим значение 34.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Старший Модератор
31795
6196
20.01.2017, 15:48
общий
это ответ
Здравствуйте, 400827!

F(4) + G(4)
F(3) + G(3)
F(2) + G(2)
F(1) + G(1)
G(1) + F(2)
F(1) + G(1)
G(2) + F(3)
G(1) + F(2)
F(1) + G(1)
F(2) + G(2)
F(1) + G(1)
G(1) + F(2)
F(1) + G(1)
G(3) + F(4)
G(2) + F(3)
G(1) + F(2)
F(1) + G(1)
F(2) + G(2)
F(1) + G(1)
G(1) + F(2)
F(1) + G(1)
F(3) + G(3)
F(2) + G(2)
F(1) + G(1)
G(1) + F(2)
F(1) + G(1)
G(2) + F(3)
G(1) + F(2)
F(1) + G(1)
F(2) + G(2)
F(1) + G(1)
G(1) + F(2)
F(1) + G(1)

каждый вызов с параметром 1 увеличивает счетчик. Всего таких вызовов 34.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа