Top.Mail.Ru
Ответы

Задача на Python срочно

Для праздника Паше нужно купить n пирожных. В магазине можно купить либо одно пирожное за a рублей, либо упаковку из k пирожных за b рублей. Помогите Паше узнать, какую минимальную сумму ему нужно потратить, чтобы получить как минимум n пирожных.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мудрец
3мес
1234567891011121314
 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))  
Аватар пользователя
Высший разум
3мес
12
 # вводим n, a, k, b - неописанным в тексте вопроса способом
print(min(n * a, n // k * b + min(n % k * a, b))) 

Существует всего 3 варианта, из которых надо выбрать минимальный:

  • Каждое пирожное покупается отдельно.

  • Покупаем n // k коробок, а остаток докупаем отдельными пирожными.

  • Покупаем n // k + 1 коробку.

Аватар пользователя
Мастер
3мес

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)

Аватар пользователя
3мес

ненавижу путон

Аватар пользователя
Мастер
3мес

ты курс для новичков не можешь пройти или это дз по информатике?