Ниже записаны две рекурсивные функции, F и G:
function F(n: integer): integer;
begin
if n > 2 then
F := F(n - 1) + G(n - 2)
else
F := 1;
end;
function G(n: integer): integer;
begin
if n > 2 then
G := G(n - 1) + F(n - 2)
else
G := 1;
end;
Чему будет равно значение, вычисленное при выполнении вызова F(7)?
Answers & Comments
function G(n:integer):integer;forward;
Так как в функции F присутствует вызов функции G, которая описана далее в программе.
function G(n: integer): integer; forward;
function F(n: integer): integer;
begin
if n > 2 then
F := F(n - 1) + G(n - 2)
else
F := 1;
end;
function G(n: integer): integer;
begin
if n > 2 then
G := G(n - 1) + F(n - 2)
else
G := 1;
end;
begin
writeln(F(7));
end.
Ответ: 13