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

