fork(4) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. int main()
  6. {
  7. std::cout << "Enter the value N to produce:\n";
  8. int N;
  9. std::cin >> N;
  10.  
  11. std::cout << "Enter the number of different denominations:\n";
  12. size_t denomCount;
  13. std::cin >> denomCount;
  14.  
  15. std::vector<int> denominations(denomCount);
  16. for (size_t i = 0; i < denomCount; ++i) {
  17. std::cout << "Enter denomination #" << (i + 1) << ":\n";
  18. std::cin >> denominations[i];
  19. }
  20.  
  21. // sort into descending order.
  22. std::sort(denominations.begin(), denominations.end(),
  23. [](int lhs, int rhs) { return lhs > rhs; });
  24.  
  25. // if the lowest denom isn't 1... add 1.
  26. if (denominations.back() != 1)
  27. denominations.push_back(1);
  28.  
  29. for (int coin: denominations) {
  30. int numCoins = N / coin;
  31. N %= coin;
  32. if (numCoins > 0)
  33. std::cout << numCoins << " x " << coin << '\n';
  34. }
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 3468KB
stdin
118
5
25
10
50
5
2
stdout
Enter the value N to produce:
Enter the number of different denominations:
Enter denomination #1:
Enter denomination #2:
Enter denomination #3:
Enter denomination #4:
Enter denomination #5:
2 x 50
1 x 10
1 x 5
1 x 2
1 x 1