SHARE
TWEET

Untitled

a guest May 25th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "pch.h" // Biblioteka potrzebna do uruchomienia programu w Visual Studio
  2. #include <iostream>
  3. #include <vector>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. void reszta(int kwota, vector<int> moneta, int* tab, int* jaki_nominal, int ilosc)
  9. {
  10.     for (int i = 0; i < ilosc; i++)
  11.     {
  12.         for (int j = 0; j < kwota; j++) {
  13.             if (tab[j] != INT_MAX)
  14.             {
  15.                 int nowa_kwota = j + moneta[i];
  16.                 int nowa_ilosc = tab[j] + 1;
  17.                 if ((nowa_kwota <= kwota) && (nowa_ilosc < tab[nowa_kwota]))
  18.                 {
  19.                     tab[nowa_kwota] = nowa_ilosc;
  20.                     jaki_nominal[nowa_kwota] = moneta[i];
  21.                 }
  22.  
  23.             }
  24.         }
  25.     }
  26.     if (tab[kwota] == INT_MAX)
  27.     {
  28.         cout << "Nie da sie wyplacic kwoty!";
  29.     }
  30.     else
  31.     {
  32.         cout << "Liczba wykorzystanych monet: " << tab[kwota] << endl;;
  33.         int tmp = kwota;
  34.  
  35.         cout << "Uzyte nominaly: ";
  36.         while (tmp != 0)
  37.         {
  38.             cout << jaki_nominal[tmp] << " ";
  39.             tmp -= jaki_nominal[tmp];          
  40.         }
  41.     }
  42. }
  43.  
  44. int main()
  45. {
  46.     vector<int> monety;
  47.     int nominal;
  48.     int znak;
  49.     int kwota, wybor;
  50.  
  51.     while(true)
  52.     {  
  53.         cout << "Wcisnij ENTER, by wprowadzac nominal." << endl;
  54.         cout << "Wcisnij ESC, by zakonczyc wprowadzanie nominalow." << endl;
  55.         cout << "\n";
  56.         znak = _getch();
  57.         if (znak == 27)
  58.         {
  59.             break;
  60.         }
  61.         else
  62.         {
  63.             cout << "Podaj monete, ktora chcesz uzyc: ";
  64.             cin >> nominal;
  65.             cout << "\n";
  66.             monety.push_back(nominal);
  67.         }
  68.     }
  69.  
  70.     int ilosc = size(monety);
  71.  
  72.     cout << "Podaj kwote do wydania: ";
  73.     cin >> kwota;
  74.     cout << "\n";
  75.  
  76.     int* jaki_nom = new int[kwota + 1];
  77.     int* tablica = new int[kwota + 1];
  78.  
  79.     for (int i = 0; i < kwota + 1; i++)
  80.     {
  81.         tablica[i] = INT_MAX;
  82.     }
  83.     tablica[0] = 0;
  84.  
  85.     reszta(kwota, monety, tablica, jaki_nom, ilosc);
  86.     cout << "\n";
  87.     return 0;
  88. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top