РУҚА
16

Шешімі: Рекурсивный вывод чисел

ЕГЭ · Информатика · Тапсырма 16 · Бағдарламалау негіздері
КүрделіФИПИA75BAEҚысқа жауап≈ 5 минутТалдау 6 қадамЖауап сверен с ключом
Условие

Ниже на пяти языках программирования записан рекурсивный алгоритм $F$. При $n > 0$ алгоритм сначала вызывает $F(n - 3)$, затем $F(\lfloor n / 2 \rfloor)$, после чего выводит значение $n$. Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова $F(7)$. Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Python
1def F(n):
2    if n > 0:
3        F(n - 3)
4        F(n // 2)
5        print(n)
Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

6 қадам
1

Вызов $F(7)$ сначала вызывает $F(4)$, затем $F(3)$, после чего выводит $7$.

$$F(7) = F(4), F(3), 7$$
2

Для вызова $F(1)$ оба последующих вызова имеют неположительные аргументы, поэтому выводится только $1$.

$$F(1) = 1$$
3

Для вызова $F(2)$ сначала не выполняется $F(-1)$, затем выполняется $F(1)$ и выводится $2$.

$$F(2) = 12$$
4

Вызов $F(4)$ даёт последовательность от $F(1)$, затем от $F(2)$, после чего выводит $4$.

$$F(4) = 1\,12\,4 = 1124$$
5

Вызов $F(3)$ сначала не выполняет $F(0)$, затем получает результат $F(1)$ и выводит $3$.

$$F(3) = 13$$

Объединяем результаты в порядке выполнения рекурсивных вызовов.

$$F(7) = 1124\,13\,7 = 1124137$$
Жауап
1124137
1124137
так ответ выглядит в бланке

Где здесь ошибаются

Выводить число до выполнения рекурсивных вызовов.

Заменять целочисленное деление $n // 2$ обычным делением.

Учитывать вызовы с нулевым или отрицательным аргументом как выводящие числа.

Закрепить приёмВ теме «Бағдарламалау негіздері» ещё 159 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 16 ЕГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 6 шагов: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Бағдарламалау негіздері»: в ней 160 задач, и у каждой есть такой же разбор. Тіркеу қажет емес.