Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h" // Biblioteka potrzebna do uruchomienia programu w Visual Studio
- #include <iostream>
- #include <vector>
- #include <conio.h>
- using namespace std;
- void reszta(int kwota, vector<int> moneta, int* tab, int* jaki_nominal, int ilosc)
- {
- for (int i = 0; i < ilosc; i++)
- {
- for (int j = 0; j < kwota; j++) {
- if (tab[j] != INT_MAX)
- {
- int nowa_kwota = j + moneta[i];
- int nowa_ilosc = tab[j] + 1;
- if ((nowa_kwota <= kwota) && (nowa_ilosc < tab[nowa_kwota]))
- {
- tab[nowa_kwota] = nowa_ilosc;
- jaki_nominal[nowa_kwota] = moneta[i];
- }
- }
- }
- }
- if (tab[kwota] == INT_MAX)
- {
- cout << "Nie da sie wyplacic kwoty!";
- }
- else
- {
- cout << "Liczba wykorzystanych monet: " << tab[kwota] << endl;;
- int tmp = kwota;
- cout << "Uzyte nominaly: ";
- while (tmp != 0)
- {
- cout << jaki_nominal[tmp] << " ";
- tmp -= jaki_nominal[tmp];
- }
- }
- }
- int main()
- {
- vector<int> monety;
- int nominal;
- int znak;
- int kwota, wybor;
- while(true)
- {
- cout << "Wcisnij ENTER, by wprowadzac nominal." << endl;
- cout << "Wcisnij ESC, by zakonczyc wprowadzanie nominalow." << endl;
- cout << "\n";
- znak = _getch();
- if (znak == 27)
- {
- break;
- }
- else
- {
- cout << "Podaj monete, ktora chcesz uzyc: ";
- cin >> nominal;
- cout << "\n";
- monety.push_back(nominal);
- }
- }
- int ilosc = size(monety);
- cout << "Podaj kwote do wydania: ";
- cin >> kwota;
- cout << "\n";
- int* jaki_nom = new int[kwota + 1];
- int* tablica = new int[kwota + 1];
- for (int i = 0; i < kwota + 1; i++)
- {
- tablica[i] = INT_MAX;
- }
- tablica[0] = 0;
- reszta(kwota, monety, tablica, jaki_nom, ilosc);
- cout << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement