
Задача на Питоне Возле дома Алисы завелись ящерицы. Они в ужасе бегают по парковке и отбрасывают хвосты, а робот Локи их подбирает.
В 1-й день Локи нашёл 1 хвост, во 2-й — 3 хвоста, в 3-й — 5 хвостов, …, в k-й день он нашёл 2 * k - 1.
Есть число n. На какой день общее количество хвостов у робота впервые стало строго больше n?
Ввод Вывод
3 2
4 3
Примечание: в первый день у робота всего был 1 хвост, во второй 1 + 3 = 4 хвоста (4 больше 3), в третий 1 + 3 + 5 = 9 хвостов (9 больше 4).
Ответы на вопрос

Чтобы решить эту задачу, давайте разберёмся, как считать количество хвостов, которое накапливает робот Локи с каждым днём. Мы видим, что каждый день Локи находит хвостов, где — это номер дня. Таким образом, количество хвостов накапливается по следующей закономерности:
- В первый день Локи находит хвост.
- Во второй день — хвоста.
- В третий день — хвостов.
- В четвёртый день — хвостов и так далее.
Эти числа представляют собой последовательность нечётных чисел, которые робот Локи собирает с каждым новым днём. Чтобы определить, когда общее количество хвостов, найденных Локи, станет строго больше числа , мы можем выполнить следующий пошаговый алгоритм.
Алгоритм решения задачи:
Инициализируем переменные:
- — общее количество хвостов, найденных к текущему дню.
- — счётчик дней.
Запускаем цикл, в котором:
- Каждый день прибавляем к количество хвостов, найденных на текущий день: .
- Проверяем, если , тогда останавливаем цикл, так как достигнуто условие задачи.
- Если нет, увеличиваем на единицу (переходим к следующему дню).
Как только , выводим — номер дня, на который это произошло.
Пример реализации на Python
Разбор примера из задачи
Пусть :
Первый день:
- Локи находит хвост.
- Общее количество хвостов: .
- не больше , идём дальше.
Второй день:
- Локи находит хвоста.
- Общее количество хвостов: .
- , значит, ответ — (на второй день количество хвостов впервые превысило ).
Пусть :
Первый день:
- Локи находит хвост.
- Общее количество хвостов: .
- не больше , идём дальше.
Второй день:
- Локи находит хвоста.
- Общее количество хвостов: .
- не больше , продолжаем.
Третий день:
- Локи находит хвостов.
- Общее количество хвостов: .
- , значит, ответ — (на третий день количество хвостов впервые превысило ).
Таким образом, функция find_day(n)
будет возвращать нужный день для заданного числа .
Похожие вопросы









Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili