Caută
  • oanaunciuleanu

The Minimum number of Coins Algorithm in C++


An algorithm to find the minimum number of coins / banknotes for a specific value.



// Number of coins

#include <bits/stdc++.h>
using namespace std;

double moneyValues[] = { 0.1, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500 };
int numberOfCoinsinCirculation = sizeof(moneyValues) / sizeof(moneyValues[0]);

void changeMoney(double sum)
{
    double initialSum = sum;
    vector<double> coins;
    for (int i = numberOfCoinsinCirculation - 1; i >= 0; i--)
    {
        while (sum >= moneyValues[i])
        {
            sum -= moneyValues[i];
            coins.push_back(moneyValues[i]);
        }
   }

   //Print the result
   cout << "The coins/banknotes needed to sum up " << initialSum << " is: \t";
   int counter = 0;
   int coinsCounter = 0;
   int banknotesCounter = 0;
   for (int i = 0; i < coins.size(); i++)
   {
       double currentAmount = coins[i];
        cout << currentAmount << "\t";
        counter++;
        if(currentAmount >= 1.0)
        {
            banknotesCounter++;
        }
        else
        {
            coinsCounter++;
        }
   }

    cout << endl;
    cout<< "The number of coins/banknotes is: " << counter << endl;
    if(coinsCounter == 1)
    {
       cout << coinsCounter << " Coin" << endl;
    }
    else
    {
        cout << coinsCounter << " Coins" << endl;
    }

    if(banknotesCounter == 1)
    {
        cout << banknotesCounter << " Banknote" << endl;
    }
    else
    {
        cout << banknotesCounter << " Banknotes" << endl;
    }

}

int main(){
   double numberToChange = 236.9;
   changeMoney(numberToChange);
   return 0;
}

The coins/banknotes needed to sum up 236.9 is:  200     20      10      5       1       0.5     0.1     0.1     0.1
0.1
The number of coins/banknotes is: 10
5 Coins
5 Banknotes

© 2018 by The Art Of Coding. by Oana Unciuleanu

This site was designed with the
.com
website builder. Create your website today.
Start Now