Ниже на пяти языках программирования записаны две рекурсивные функции: F и G.
Решение
Бейсик Python
FUNCTION F(n)
IF n > 2 THEN
F = F(n - 1) +G(n - 2)
ELSE
F = 2
END IF
END FUNCTION
FUNCTION G(n)
IF n > 2 THEN
G = G(n - 1) +F(n - 2)
ELSE
G = 2
END IF
END FUNCTION def F(n):
if n > 2:
return F(n-1) + G(n-2)
else: return 2
def G(n):
if n > 2:
return G(n-1) + F(n-2)
else: return 2
Паскаль Алгоритмический язык
function F(n : integer): integer;
begin
if n > 2 then
F := F(n - 1) + G(n - 2)
else
F := 2;
end;
function G(n : integer): integer;
begin
if n > 2 then
G := G(n - 1) + F(n - 2)
else
G := 2;
end; алг цел F(цел n)
нач
если n > 2
то
знач:= F(n-1) + G(n-2)
иначе
знач:=2
все
кон
алг цел G(цел n)
нач
если n > 2
то
знач:= G(n-1) + F(n-2)
иначе
знач:=2
все
кон
Си
int F(int n) {
if (n > 2)
return F(n-1) + G(n-2);
else
return 2;
}
int G(int n) {
if (n > 2)
return G(n-1) + F(n-2);
else
return 2;
}
Чему будет равно значение, вычисленное при выполнении вызова G(6)?
Ответ: 16