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