Решение: Вывод рекурсивной функции
Ниже на пяти языках программирования записан один и тот же рекурсивный алгоритм $F$. Функция сначала выводит значение параметра $n$, а затем, если $n \geq 7$, вызывает $F(n - 1)$ и $F(n - 3)$ именно в этом порядке. Определите последовательность чисел, выводимую при выполнении вызова $F(9)$.
Решение по шагам
3 шагаВызов $F(9)$ сразу выводит число 9, затем вызывает $F(8)$ и $F(6)$.
$$F(9) \Rightarrow 9,\ F(8),\ F(6)$$Вызов $F(8)$ выводит 8. Затем $F(7)$ выводит 7 и вызывает $F(6)$, который выводит 6. После этого вызывается $F(5)$, который выводит 5.
$$F(8) \Rightarrow 8\,7\,6\,5$$После завершения $F(8)$ выполняется второй вызов из $F(9)$ — $F(6)$, который выводит 6. Все вызовы со значениями меньше 7 рекурсивных продолжений не имеют.
$$F(9) \Rightarrow 9\,8\,7\,6\,5\,6$$Где здесь ошибаются
Меняют местами вызовы $F(n-1)$ и $F(n-3)$.
Продолжают рекурсию для значений $n < 7$.
Записывают разделители между выводимыми числами.