Ниже на пяти языках программирования записан рекурсивный алгоритм F.
| Бейсик | Python |
|---|---|
SUB F(n) IF n < 10 THEN F(3*n - 1) PRINT N F(2*n + 1) END IF END SUB
| def F(n): if n < 10: F(3*n - 1) print(n) F(2*n + 1)
|
| Паскаль | Алгоритмический язык |
procedure F(n: integer); begin if n < 10 then begin F(3*n - 1); write(n); F(2*n + 1) end end;
| алг F(цел n) нач если n < 10 то F(3*n - 1) вывод n F(2*n + 1) все кон |
| С++ | |
void F(int n) { if (n < 10) { F(3*n - 1); std::cout << n; F(2*n + 1); } }
| |
Запишите подряд без пробелов и разделителей все числа, которые будут показаны на экране при выполнении вызова F(1). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Промоделируем действие алгоритма.
F(1)
F(2)
F(5)
F(14)
5
F(11)
2
F(5)
F(14)
5
F(11)
1
F(3)
F(8)
F(23)
8
F(17)
3
F(7)
F(20)
7
F(15)
Таким образом, получаем ответ: 5251837.
Ответ: 5251837.

