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

