Трассировка рекурсивной функции
Ниже на пяти языках программирования записан рекурсивный алгоритм $F$. Во всех вариантах алгоритм выводит значение параметра $n$, а затем, если $n \ge 4$, вызывает функцию для $n - 1$ и для целой части от деления $n$ на 2. Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова $F(6)$. Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
1def F(n): 2 print(n, end='') 3 if n >= 4: 4 F(n - 1) 5 F(n // 2)
Условие как в банке ФИПИ — открыть и сверить
| Ниже на пяти языках программирования записан рекурсивный алгоритм F.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(6). Числа должны быть записаны в том же порядке, в котором они выводятся на экран. | ||||||||||||
| | ||||||||||||
Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.
1Мягкая — с чего смотретьуровень 1 из 3
В каком порядке выполняются команды: сначала вывод текущего $n$, затем рекурсивный вызов для $n-1$, затем вызов для целой части от деления $n$ на 2?
2Наводящая — какие числа считатьуровень 2 из 3
Постройте дерево рекурсивных вызовов, начиная с $F(6)$, и записывайте число сразу при входе в функцию.
3Прямая — фактически решениеуровень 3 из 3
Последовательность вывода при обходе вызовов: $6 \to 5 \to 4 \to 3 \to 2 \to 2 \to 3$.