OpenFIPI 2.0

2778CC

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

Бейсик

Python

DECLARE SUB F(n)

DECLARE SUB G(n)

SUB F(n)

  IF n > 0 THEN G(n - 2)

END SUB

 

SUB G(n)

  PRINT "*"

  IF n > 1 THEN F(n - 1)

END SUB

def F(n):

    if n > 0:

        G(n - 2)

 

def G(n):

    print("*")

    if n > 1:

        F(n - 1)

 

Алгоритмический язык

Паскаль

алг F(цел n)

нач

  если n > 0 то

    G(n - 2)

  все

кон

 

алг G(цел n)

нач

  вывод "*"

  если n > 1 то

    F(n - 1)

  все

кон

procedure F(n: integer); forward;

procedure G(n: integer); forward;

 

procedure F(n: integer);

begin

  if n > 0 then

    G(n - 2);

end;

 

procedure G(n: integer);

begin

  writeln('*');

  if n > 1 then

    F(n - 1);

end;

Си

void F(int n);
void G(int n);

 

void F(int n){

  if (n > 0)

    G(n - 2);

}

 

void G(int n){

  printf("*");

  if (n > 1)

    F(n - 1);

}

Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(12)?

Ответы

4