Информатика, опубликовано 2018-08-22 23:43:00 by Гость

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

Ответ оставил Гость

Вот полная трассировка вызовов при вычислении 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 - это ответ.

Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.

Форма вопроса доступна на полной версии этой страницы.