Задача на python срочно - Общение Python мододелов

Вопрос Задача на python срочно

Регистрация
4 Авг 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
Для праздника Паше нужно купить n пирожных. В магазине можно купить либо одно пирожное за a рублей, либо упаковку из k пирожных за b рублей. Помогите Паше узнать, какую минимальную сумму ему нужно потратить, чтобы получить как минимум n пирожных.
 
Регистрация
18 Ноя 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
# вводим n, a, k, b - неописанным в тексте вопроса способом
print(min(n * a, n // k * b + min(n % k * a, b))) Существует всего 3 варианта, из которых надо выбрать минимальный: Каждое пирожное покупается отдельно.Покупаем n // k коробок, а остаток докупаем отдельными пирожными.Покупаем n // k + 1 коробку.
 
Регистрация
2 Окт 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
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)
 
Сверху Снизу