cimletezesC++.cpp

 1  #include <iostream>
 2  #include <vector>
 3  #include <map>
 4  
 5  using namespace std;
 6  
 7  void moho_cimletezes(int osszeg)
 8  {
 9      vector<int> cimletek={1,2,5,10,20,50,100,500,1000};
10      map<int,int> cimlet_db;
11  
12      for(auto elem:cimletek)
13      {
14          cimlet_db[elem]=0;
15      }
16  
17      vector<int> felhasznalt_cimletek;
18  
19      int i=cimletek.size()-1;
20      while(i>=0)
21      {
22          while(osszeg>=cimletek[i])
23          {
24              osszeg=osszeg-cimletek[i];
25              felhasznalt_cimletek.push_back(cimletek[i]);
26              cimlet_db[cimletek[i]]++;
27          }
28          i--;
29      }
30      for(auto &cimlet:felhasznalt_cimletek)
31      {
32          cout << cimlet << " ";
33      }
34      cout << endl << "------------------------------------" << endl;
35      for(auto [key,value]:cimlet_db)
36      {
37          cout << key << ": " << value << endl;
38      }
39  
40  }
41  int main()
42  {
43      setlocale(LC_ALL,"");
44      int valtando;
45      cout << "A cimletezendő összeg: ";
46      cin >> valtando;
47      cout << "A megadott összeg minimális cimletezése:" << endl;
48      moho_cimletezes(valtando);
49      return 0;
50  
51  }