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

