Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 11 января 2026 16:55

Определите, сколько символов * выведет эта процедура при вызове F(40): Python Паскаль C++ def F( n ): print('*') if n >= 1: print('*') F(n-1) F(n-3) print('*')

Ответ нейросети

11 января 2026 16:55

Задача сводится к подсчету числа выводов символа '*' при вызове F(n).

  1. Анализ кода
  • Пусть T(n) — сколько символов '*' напечатает вызов F(n).
  • Всегда выполняется первый print('*'), поэтому для любого n T(n) по крайней мере 1.
  • Затем если n >= 1 выполняются еще: print(''), рекурсивные вызовы F(n-1) и F(n-3), и в конце ещё print('').
  • Значит для n >= 1 общее число печатей равно T(n) = 1 (перед рекурсией) + T(n-1) + T(n-3) + 1 (после рекурсий) + 1 (первый внеусловный вывод) = 3 + T(n-1) + T(n-3).
  • Для n <= 0 условие if нe выполняется, поэтому печатает только первый print, следовательно T(n) = 1.

Итоговая рекуррентная формула:

  • T(n) = 1 при n <= 0
  • T(n) = 3 + T(n-1) + T(n-3) при n >= 1
  1. Вычисление значений (первичные шаги)
  • T(0) = 1
  • T(-1) = 1
  • T(-2) = 1
  • T(1) = 3 + T(0) + T(-2) = 3 + 1 + 1 = 5
  • T(2) = 3 + T(1) + T(-1) = 3 + 5 + 1 = 9
  • T(3) = 3 + T(2) + T(0) = 3 + 9 + 1 = 13
  • T(4) = 3 + T(3) + T(1) = 3 + 13 + 5 = 21
  • T(5) = 3 + T(4) + T(2) = 3 + 21 + 9 = 33
  • T(6) = 3 + T(5) + T(3) = 3 + 33 + 13 = 49
  • T(7) = 3 + T(6) + T(4) = 3 + 49 + 21 = 73
  • T(8) = 3 + T(7) + T(5) = 3 + 73 + 33 = 109
  • T(9) = 3 + T(8) + T(6) = 3 + 109 + 49 = 161
  • T(10) = 3 + T(9) + T(7) = 3 + 161 + 73 = 237 (Дальше по той же рекуррентной схеме можно продолжать до нужного n.)
  1. Результат для F(40) По расчёту по той же схеме до n = 40 получаем: T(40) = 22 947 841

Ответ одинаков для всех трёх языков (Python, Pascal, C++, т.к. речь идёт о количестве вызовов печати, а не о синтаксисе языка).

Итого:

  • Python: 22 947 841 выводов символа '*'
  • Pascal: 22 947 841
  • C++: 22 947 841

Если хотите, могу показать полный табличный ход вычислений до 40 или привести небольшой скрипт, который посчитает это автоматически.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Определите, сколько символов * выведет эта процедура при вызове F(40): Python Паскаль C++ def F( n ): print('*') if n >= 1: print('*') F(n-1) F(n-3) print('*')
Задача сводится к подсчету числа выводов символа '*' при вызове F(n). 1) Анализ кода - Пусть T(n) — сколько символов '*' напечатает вызов F(n). - Всегда выполняется первый print('*'), поэтому для любого n T(n) по крайней мере 1. - Затем если n >= 1 выполняются еще: print('*'), рекурсивные вызовы F(n-1) и F(n-3), и в конце ещё print('*'). - Значит для n >= 1 общее число печатей равно T(n) = 1 (перед рекурсией) + T(n-1) + T(n-3) + 1 (после рекурсий) + 1 (первый внеусловный вывод) = 3 + T(n-1) + T(n-3). - Для n <= 0 условие if нe выполняется, поэтому печатает только первый print, следовательно T(n) = 1. Итоговая рекуррентная формула: - T(n) = 1 при n <= 0 - T(n) = 3 + T(n-1) + T(n-3) при n >= 1 2) Вычисление значений (первичные шаги) - T(0) = 1 - T(-1) = 1 - T(-2) = 1 - T(1) = 3 + T(0) + T(-2) = 3 + 1 + 1 = 5 - T(2) = 3 + T(1) + T(-1) = 3 + 5 + 1 = 9 - T(3) = 3 + T(2) + T(0) = 3 + 9 + 1 = 13 - T(4) = 3 + T(3) + T(1) = 3 + 13 + 5 = 21 - T(5) = 3 + T(4) + T(2) = 3 + 21 + 9 = 33 - T(6) = 3 + T(5) + T(3) = 3 + 33 + 13 = 49 - T(7) = 3 + T(6) + T(4) = 3 + 49 + 21 = 73 - T(8) = 3 + T(7) + T(5) = 3 + 73 + 33 = 109 - T(9) = 3 + T(8) + T(6) = 3 + 109 + 49 = 161 - T(10) = 3 + T(9) + T(7) = 3 + 161 + 73 = 237 (Дальше по той же рекуррентной схеме можно продолжать до нужного n.) 3) Результат для F(40) По расчёту по той же схеме до n = 40 получаем: T(40) = 22 947 841 Ответ одинаков для всех трёх языков (Python, Pascal, C++, т.к. речь идёт о количестве вызовов печати, а не о синтаксисе языка). Итого: - Python: 22 947 841 выводов символа '*' - Pascal: 22 947 841 - C++: 22 947 841 Если хотите, могу показать полный табличный ход вычислений до 40 или привести небольшой скрипт, который посчитает это автоматически.