Ниже на пяти языках программирования записан рекурсивный алгоритм F.
| Бейсик | Python |
|---|---|
DECLARE SUB F(n) SUB F(n) IF n > 0 THEN F(n − 1) PRINT n F(n − 2) END IF END SUB
| def F(n): if n > 0: F(n − 1) print(n) F(n − 2)
|
| Паскаль | Алгоритмический язык |
procedure F(n: integer); begin if n > 0 then begin F(n − 1); writeln(n); F(n − 2) end end;
| алг F(цел n) нач если n > 0 то F(n − 1) вывод n F(n − 2) все кон |
| Си++ | |
void F(int n) { if (n > 0) { F(n − 1); std: :cout << n; F(n − 2); } }
| |
Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(4). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Первым действием процедура F(4) вызовет процедуру F(3), которая вызовет процедуру F(2). После этого процедура F(2) вызовет процедуру F(1), которая выведет на экран 1. После этого процедура F(2) выведет на экран 2. Далее процедура F(3) следующим шагом своего алгоритма выведет на экран число 3, после чего будет вызвана процедура F(1), которая выведет на экран 1.
Далее процедура F(4) следующим шагом своего алгоритма выведет на экран 4 и вызовет процедуру F(2), которая вызовет процедуру F(1), после чего на экран будет выведена 1. Далее процедура F(2) выведет на экран 2.
Ответ: 1231412.

