Задать вопрос
5 июня, 02:16

Записаны 2 рекурсивные функции, F и G.

function F (n:integer) : integer;

begin

if n>2 then

F:=F (n-1) + G (n-2)

else

F:=n;

end;

function G (n:integer) : integer;

begin

if n>2 then

G:=G (n-1) + F (n-2)

else

G:=n+1;

end;

Чему будет равно значение, вычисленное при выполнении вызова F (6) ?

+1
Ответы (1)
  1. 5 июня, 04:41
    0
    Вот полная трассировка вызовов при вычислении F (6):

    Вызов F (6)

    Вызов F (5)

    Вызов F (4)

    Вызов F (3)

    Вызов F (2)

    Выход из F со значением 2

    Вызов G (1)

    Выход из G со значением 2

    Выход из F со значением 4

    Вызов G (2)

    Выход из G со значением 3

    Выход из F со значением 7

    Вызов G (3)

    Вызов G (2)

    Выход из G со значением 3

    Вызов F (1)

    Выход из F со значением 1

    Выход из G со значением 4

    Выход из F со значением 11

    Вызов G (4)

    Вызов G (3)

    Вызов G (2)

    Выход из G со значением 3

    Вызов F (1)

    Выход из F со значением 1

    Выход из G со значением 4

    Вызов F (2)

    Выход из F со значением 2

    Выход из G со значением 6

    Выход из F со значением 17

    17 - это ответ.
Знаешь ответ?
Не уверен в ответе?
Найди верный ответ на вопрос ✅ «Записаны 2 рекурсивные функции, F и G. function F (n:integer) : integer; begin if n>2 then F:=F (n-1) + G (n-2) else F:=n; end; function G ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы