• Предмет: Информатика
  • Автор: nikitkapologic
  • Вопрос задан 3 месяца назад

Требуется купить на заданную сумму фрукты, если на рынке установлены следующие цены: один арбуз - А руб., одно яблоко - В р., один персик – Р р. Определить такие варианты покупок, чтобы деньги были истрачены полностью, а количество предметов было наибольшим. Нужно решить эту задачу математическим путем

Ответы

Ответ дал: victorkatun65
0

#include <iostream>

void findBestPurchaseOptions(int budget, int priceWatermelon, int priceApple, int pricePeach) {

   int maxWatermelonCount = budget / priceWatermelon;

   for (int watermelonCount = 0; watermelonCount <= maxWatermelonCount; ++watermelonCount) {

       int remainingBudgetAfterWatermelon = budget - watermelonCount * priceWatermelon;

       int maxAppleCount = remainingBudgetAfterWatermelon / priceApple;

       for (int appleCount = 0; appleCount <= maxAppleCount; ++appleCount) {

           int remainingBudgetAfterApple = remainingBudgetAfterWatermelon - appleCount * priceApple;

           int peachCount = remainingBudgetAfterApple / pricePeach;

           int totalFruits = watermelonCount + appleCount + peachCount;

           int totalSpent = watermelonCount * priceWatermelon + appleCount * priceApple + peachCount * pricePeach;

           if (totalSpent == budget && totalFruits > 0) {

               std::cout << "Количество арбузов: " << watermelonCount << ", Количество яблок: " << appleCount

                         << ", Количество персиков: " << peachCount << std::endl;

           }

       }

   }

}

int main() {

   int budget, priceWatermelon, priceApple, pricePeach;

   std::cout << "Введите бюджет: ";

   std::cin >> budget;

   std::cout << "Введите цену арбуза: ";

   std::cin >> priceWatermelon;

   std::cout << "Введите цену яблока: ";

   std::cin >> priceApple;

   std::cout << "Введите цену персика: ";

   std::cin >> pricePeach;

   findBestPurchaseOptions(budget, priceWatermelon, priceApple, pricePeach);

   return 0;

}

Вас заинтересует