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