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

