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