Записаны 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;Чему буде...
Записаны 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 - это ответ.
Не нашли ответ?
Похожие вопросы