Вопрос задан 04.02.2025 в 15:35. Предмет Информатика. Спрашивает Чаукина Роза.

Спиннер – модная игрушка c подшипником в основании, к которому прикреплены лопасти. Афанасий открыл бизнес по производству спиннеров. Он выяснил, что за спиннер, у которого N лопастей, покупатели готовы платить A + B × N рублей, но при этом покупатель не станет покупать спиннер, если его цена будет выше C рублей. Определите максимальное число лопастей спиннера, который согласится приобрести покупатель. Программа получает на вход три числа A, B, C (стоимость основания спиннера, стоимость одной лопасти и максимальная стоимость всего спиннера). Все числа – целые положительные, не превосходящие 2×109 , при этом A ≤ C. Программа должна вывести одно число – максимальное число лопастей спиннера.

Перейти к ответам

Ответы на вопрос

Отвечает Всеволодов Никодим.

Чтобы определить максимальное число лопастей NN, которое может быть у спиннера, мы должны учесть ограничения, указанные в задаче. Покупатели готовы платить за спиннер не больше CC рублей, а его цена определяется формулой:

P=A+B×NP = A + B \times N

где:

  • AA — стоимость основания спиннера;
  • BB — стоимость одной лопасти;
  • NN — количество лопастей.

Условие:

Покупатель купит спиннер, только если:

PCP \leq C

Подставим формулу стоимости PP в это ограничение:

A+B×NCA + B \times N \leq C

Вычтем AA с обеих сторон:

B×NCAB \times N \leq C - A

Делим обе стороны на BB (так как B>0B > 0, деление на него не меняет знак неравенства):

NCABN \leq \frac{C - A}{B}

Так как NN — это целое число, его максимальное значение будет:

N=CABN = \left\lfloor \frac{C - A}{B} \right\rfloor

Алгоритм:

  1. Проверяем входные данные AA, BB, CC. Гарантируется, что ACA \leq C и все числа положительные.
  2. Вычисляем разницу CAC - A. Если CA<0C - A < 0, то результат N=0N = 0, так как спиннер с любой лопастью будет стоить дороже CC.
  3. Делим разницу CAC - A на BB и берем целую часть результата (функция деления с округлением вниз, или оператор целочисленного деления).

Пример кода:

python
# Ввод данных A, B, C = map(int, input().split())

# Вычисление max_lopasti = (C - A) // B

# Вывод результата print(max_lopasti)

Объяснение работы:

  1. (CA)(C - A) определяет, сколько денег покупатель готов потратить на лопасти, после учета стоимости основания.
  2. Деление (CA)//B(C - A) // B показывает, сколько лопастей можно добавить, чтобы общая стоимость не превышала CC.
  3. Результат всегда корректен, так как входные числа целые, а операция целочисленного деления автоматически округляет вниз.

Примеры:

  1. Ввод:

    10 2 20

    Вычисления:

    • CA=2010=10C - A = 20 - 10 = 10
    • N=10//2=5N = 10 // 2 = 5 Вывод:
    5
  2. Ввод:

    15 5 100

    Вычисления:

    • CA=10015=85C - A = 100 - 15 = 85
    • N=85//5=17N = 85 // 5 = 17 Вывод:
    17

Таким образом, программа определяет максимальное количество лопастей NN, соблюдая все ограничения задачи.

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

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

Последние заданные вопросы в категории Информатика

Задать вопрос