Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): F и G.
Бейсик |
Python |
DECLARE SUB F(n) DECLARE SUB G(n)
SUB F(n) PRINT "*" IF n > 0 THEN G(n - 1) END SUB
SUB G(n) PRINT "*" IF n > 0 THEN F(n - 1) END SUB |
def F(n): print("*") if n > 0: G(n - 1)
def G(n): print("*") if n > 0: F(n - 1)
|
Алгоритмический язык |
Паскаль |
алг F(цел n) нач вывод "*" если n > 0 то G(n - 1) все кон
алг G(цел n) нач вывод "*" если n > 0 то F(n - 1) все кон |
procedure F(n: integer); forward; procedure G(n: integer); forward;
procedure F(n: integer); begin writeln('*'); if n > 0 then G(n - 1); end;
procedure G(n: integer); begin writeln('*'); if n > 0 then F(n - 1); end; |
Си |
|
void F(int n);
void F(int n){ printf("*"); if (n > 0) G(n - 1); }
void G(int n){ printf("*"); if (n > 0) F(n - 1); } |
Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(14)?