Задача на Python срочно
Для праздника Паше нужно купить n пирожных. В магазине можно купить либо одно пирожное за a рублей, либо упаковку из k пирожных за b рублей. Помогите Паше узнать, какую минимальную сумму ему нужно потратить, чтобы получить как минимум n пирожных.
def min_cost(n: int, a: int, k: int, b: int) -> int:
# Рассчитываем минимальную стоимость
min_price = float('inf')
for packs in range((n // k) + 2): # +2, чтобы учитывать случай с дополнительной упаковкой
single_pieces = max(0, n - packs * k)
cost = packs * b + single_pieces * a
min_price = min(min_price, cost)
return min_price
# Пример использования
n, a, k, b = map(int, input().split())
print(min_cost(n, a, k, b))
# вводим n, a, k, b - неописанным в тексте вопроса способом
print(min(n * a, n // k * b + min(n % k * a, b)))
Существует всего 3 варианта, из которых надо выбрать минимальный:
Каждое пирожное покупается отдельно.
Покупаем n // k коробок, а остаток докупаем отдельными пирожными.
Покупаем n // k + 1 коробку.
def min_cost(n, a, k, b):
# Минимальная стоимость
min_cost = float('inf')
# Перебираем количество упаковок от 0 до максимального возможного
for packs in range((n // k) + 2): # +2, чтобы учесть случай, когда нужно больше пирожных
# Количество пирожных, которые мы получим из упаковок
total_from_packs = packs * k
# Оставшиеся пирожные, которые нужно купить поштучно
remaining = max(0, n - total_from_packs)
# Общая стоимость
cost = packs * b + remaining * a
min_cost = min(min_cost, cost)
return min_cost
# Чтение входных данных
n = int(input("Введите количество пирожных: "))
a = int(input("Введите стоимость одного пирожного: "))
k = int(input("Введите количество пирожных в упаковке: "))
b = int(input("Введите стоимость упаковки: "))
# Вычисление и вывод результата
result = min_cost(n, a, k, b)
print(result)
ненавижу путон
ты курс для новичков не можешь пройти или это дз по информатике?