Ниже на пяти языках программирования записана рекурсивная функция (процедура) F.
| Бейсик | Python |
|---|---|
SUB F(n) PRINT n, IF n > 2 THEN F(n − 1) F(n − 2) F(n − 3) END IF END SUB
| def F(n): print (n) if n > 2: F(n − 1) F(n − 2) F(n − 3)
|
| Паскаль | Алгоритмический язык |
procedure F(n: integer); begin write(n); if n > 2 then begin F(n − 1); F(n − 2); F(n − 3) end end;
| алг F(цел n) нач вывод n если n > 2 то F(n − 1) F(n − 2) F(n − 3) все кон |
| Си | |
void F(int n ){ cout « n « endl; if (n > 2) { F(n − 1); F(n − 2); F(n − 3); } }
| |
Что выведет программа при вызове F(4)? В ответе запишите последовательность выведенных цифр слитно (без пробелов).
Рассмотрим структуру вызова функций, очередность.
F(4) {
F(3) {
F(2)
F(1)
F(0)
}
F(2)
F(1)
}
Так как число печатается сразу при заходе в функцию, то порядок чисел будет совпадать с порядком вызовов.
Ответ: 4321021.

