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

