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

