Решение: Вывод рекурсивной функции
Ниже на пяти языках программирования записан рекурсивный алгоритм $F$. Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова $F(4)$. Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
1def F(n): 2 print(n, end='') 3 if n >= 3: 4 F(n - 1) 5 F(n - 1) 6 7F(4)
Решение по шагам
4 шагаПри вызове $F(4)$ сначала выводится число $4$. Затем выполняются два вызова $F(3)$.
$$4$$Первый вызов $F(3)$ выводит $3$, после чего два вызова $F(2)$ выводят по $2$ каждый.
$$3\,2\,2$$Второй вызов $F(3)$ аналогично выводит $3$, затем дважды выводится $2$.
$$3\,2\,2$$Объединяем числа в порядке их вывода без пробелов и разделителей.
$$4\,3\,2\,2\,3\,2\,2$$Где здесь ошибаются
Записывают результаты рекурсивных вызовов перед числом текущего вызова.
Учитывают только один из двух одинаковых рекурсивных вызовов.
Добавляют пробелы или разделители между цифрами.