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

