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

