Шешімі: Рекурсивный вывод чисел
Ниже на пяти языках программирования записан рекурсивный алгоритм F. Если n > 0, алгоритм выводит число n, затем вызывает F при целочисленном делении n на 3, а после этого вызывает F(n − 2). Выполните вызов F(7).
Запишите подряд без пробелов и разделителей все числа в том порядке, в котором они выводятся на экран.
Шешім по шагам
4 қадамПри вызове F(7) сначала выводится 7. Затем выполняются вызовы F(7 div 3) = F(2) и F(7 − 2) = F(5).
$$F(7) \to 7,\ F(2),\ F(5)$$Вызов F(2) выводит 2 и выполняет F(0), после чего рекурсия прекращается.
$$F(2) \to 2,\ F(0),\ F(0)$$Вызов F(5) выводит 5, затем F(1) выводит 1, а F(3) выводит 3 и дважды вызывает F(1), каждый раз выводя 1.
$$F(5) \to 5,\ 1,\ 3,\ 1,\ 1$$Объединяем числа в порядке выполнения рекурсивных вызовов.
$$7\,2\,5\,1\,3\,1\,1$$Где здесь ошибаются
Меняют местами вызовы F(n div 3) и F(n − 2).
Продолжают рекурсию при n ≤ 0.
Записывают разделители между выведенными числами.