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

Допоможіть будь ласка.
В програмі тоні: в банку залишилися тільки 6 купюр : 1 грн, 1 грн, 2 грн, 2 грн, 5 грн, 10 грн. Скласти алгоритм програми, за допомогою якого можна видати всі можливі варіанти будь-якої суми(введеної з клавіатури), меншої за 21 грн, що складається з даних купюр.​


nurekesh00: На каком языке надо то?

Ответы

Ответ дал: nurekesh00
1

Ответ:

#include <iostream>

#include <vector>

using namespace std;

void findCombinations(vector<int>& notes, int target, vector<int>& current, int index) {

   if (target == 0) {

       for (int note : current) {

           cout << note << " ";

       }

       cout << endl;

       return;

   }

   if (target < 0 || index == notes.size()) {

       return;

   }

   current.push_back(notes[index]);

   findCombinations(notes, target - notes[index], current, index);

   current.pop_back();

   findCombinations(notes, target, current, index + 1);

}

int main() {

   vector<int> notes = {1, 1, 2, 2, 5, 10};

   int target;

   cout << "Введіть суму (меншу за 21 грн): ";

   cin >> target;

   if (target < 1 || target >= 21) {

       cout << "Сума має бути від 1 до 20 грн." << endl;

   } else {

       vector<int> current;

       findCombinations(notes, target, current, 0);

   }

   return 0;

}

Объяснение:

С++


glincaknasta: дуже дякую ☺️
Вас заинтересует