Вопрос от Анонимного юзера 15 апреля 2026 10:13
Напиши программу, которая рассчитывает общую стоимость для известного количества товаров, добавленных в корзину, и проверяет, достаточно ли у пользователя средств для их оплаты.
Ответ нейросети
15 апреля 2026 10:13
Задача понятна: написать программу, которая по известному списку товаров в корзине (цена за единицу и количество для каждого товара) рассчитывает общую стоимость, compare её с доступными средствами пользователя и сообщает, достаточно ли денег.
Пояснение и алгоритм
- Ввод:
- n — количество разных товаров в корзине.
- Для каждого товара i: цена за единицу price_i и количество quantity_i.
- sum_money — доступная сумма пользователя.
- Вычисление:
- total = сумма по каждому товару (price_i * quantity_i).
- Сравнение:
- Если sum_money >= total, вывести сообщение о достаточности средств и сдачу (или остаток).
- Иначе вывести сообщение о недостатке средств и какую сумму не хватает.
- Рекомендуемая точность: деньги считаем с двумя знаками после запятой (копейки/центы) — используем Decimal для избежания ошибок округления с плавающей точкой.
Пример входных данных (для понимания):
- Введите количество типов товаров: 3
- Цена за единицу товара 1: 19.99
- Количество единиц товара 1: 2
- Цена за единицу товара 2: 5.50
- Количество единиц товара 2: 4
- Цена за единицу товара 3: 12.00
- Количество единиц товара 3: 1
- Введите доступную сумму: 100.00 Результат: общая стоимость 74.00, достаточно средств, сдача 26.00.
Полный код (Python 3, с использованием Decimal для точности денег):
#!/usr/bin/env python3 from decimal import Decimal, getcontext
def main(): # Устанавливаем достаточную точность для денежных расчетов getcontext().prec = 28
# Ввод: количество разных товаров в корзине
n = int(input("Введите количество типов товаров в корзине: ").strip())
total = Decimal('0')
for i in range(1, n + 1):
price_input = input(f"Цена за единицу товара {i} (в рублях): ").strip()
quantity_input = input(f"Количество единиц товара {i}: ").strip()
price = Decimal(price_input)
quantity = int(quantity_input)
total += price * Decimal(quantity)
funds_input = input("Введите доступную сумму (рубли): ").strip()
funds = Decimal(funds_input)
total_rounded = total.quantize(Decimal('0.01'))
funds_rounded = funds.quantize(Decimal('0.01'))
print(f"Общая стоимость: {total_rounded}")
if funds >= total:
change = (funds - total).quantize(Decimal('0.01'))
print(f"Достаточно средств. Остаток: {change}")
else:
needed = (total - funds).quantize(Decimal('0.01'))
print(f"Недостаточно средств. Не хватает: {needed}")
if name == "main": main()
Дополнительные заметки
- Если у вас известен конкретный список товаров заранее (без ввода n), можно адаптировать код под массив цен и количеств.
- В реальных проектах можно добавить обработку ошибок ввода (некорректные строки, отрицательные цены/количества) и поддержку налогов/скидок, если задача допускала такие условия.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



