1. Главная
  2. Библиотека
  3. Программирование
  4. Определи, сколько звёздочек будет выведено в результате...
Разбор задачи

Определи, сколько звёздочек будет выведено в результате вызова f(7) подпрограммы. : : (n // 2) ('***')

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Определи, сколько звёздочек будет выведено в результате вызова f(7) подпрограммы. : : (n // 2) ('***')

Условие:

Определи, сколько звёздочек будет выведено в результате вызова f(7) подпрограммы. deff(n)\operatorname{def} f(n) :\nif n>1n>1 :\nf(n // 2)\nprint('***')

Решение:

Функция f(n) работает следующим образом:

  1. Если n больше 1, она рекурсивно вызывает себя с аргументом n // 2 (целочисленное деление на 2).
  2. После этого она выводит три звёздочки ('***').

Теперь давайте посмотрим, как будет работать функция для n = 7:

  1. f(7):

    • 7 > 1, поэтому вызываем f(7 // 2) = f(3).
  2. f(3):

    • 3 > 1, поэтому вызываем f(3 // 2) = f(1).
  3. f(1):

    • 1 не больше 1, поэтому функция завершает выполнение и ничего не выводит.

Теперь мы вернёмся к f(3):

  • После завершения f(1) функция f(3) продолжает выполнение и выводит '**...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое ключевое отличие в поведении функции f(n) при n=1 по сравнению с n > 1?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет