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

