Задать вопрос
20 декабря, 22:36

Записаны 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) ?

+3
Ответы (1)
  1. 20 декабря, 22:47
    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 ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы