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

