Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3600790
А
Аноним
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), можно адаптировать код под массив цен и количеств.
  • В реальных проектах можно добавить обработку ошибок ввода (некорректные строки, отрицательные цены/количества) и поддержку налогов/скидок, если задача допускала такие условия.