Информатика (Рекурсивные алгоритмы)

Ниже на пяти языках программирования записаны рекурсивные функции F и G. 

БейсикPython
FUNCTION F(n)
   IF n > 2 THEN
     F = F(n-1)+G(n-1)+F(n-2)
   ELSE
     F = n
   END IF
 END FUNCTION
 FUNCTION G(n)
   IF n > 2 THEN 
     G = G(n-1)+F(n-1)+G(n-2)
   ELSE
     G = 3-n
   END IF
 END FUNCTION

def F(n):

    if n > 2:

        return F(n-1)+G(n-1)+F(n-2)

    else: return n

def G(n):

    if n > 2:

        return G(n-1)+F(n-1)+G(n-2)

    else: return 3-n

Алгоритмический языкПаскаль
алг цел F(цел n)
нач
  если n > 2
    то
      знач := F(n-1)+G(n-1)+F(n-2)
    иначе
      знач := n
    все
кон
алг цел G(цел n)
нач
  если n > 2
    то
      знач := G(n-1)+F(n-1)+G(n-2)
    иначе
      знач := 3-n
  все
кон
function F(n: integer): integer;
begin
  if n > 2 then
    F := F(n-1)+G(n-1)+F(n-2)
  else
    F := n;
end;
function G(n: integer): integer;
begin
  if n > 2 then
    G := G(n-1)+F(n-1)+G(n-2)
  else
    G := 3-n;
end;
Си
int F(int n){
if (n > 2)
return F(n-1)+G(n-1)+F(n-2);
else return n;
}
int G(int n){
if (n > 2)
return G(n-1)+F(n-1)+G(n-2);
else return 3-n;
}

Чему будет равно значение, вычисленное при выполнении вызова F(5)?

 
 

Регистрация


Зарегистрироваться через VK

Личный кабинет

Регистрация
Войти через VK