Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions coin_change.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include <bits/stdc++.h>
using namespace std;


int minCoins(int coins[], int total_coins, int N) // Function to return the minimum // coins needed
{
if (N == 0) // If we have a combination then
return 0;

int result = INT_MAX; // Currently result is initialised as INT_MAX

for (int i = 0; i < total_coins; i++) // run until availability of coins
{
if (coins[i] <= N) { // Add to the list of counting
int sub_res = 1 + minCoins(coins, total_coins, N - coins[i]); // add 1 due to the coin inclusion
// see if result can minimize
if (sub_res < result)
result = sub_res;
}
}
return result;
}

int main()
{
int coins[] = { 10, 25, 5 };
int sum = 30; // the money to convert
int total_coins = 3; // total availability of coins
cout << "Minmum coins needed are " << minCoins(coins, total_coins, sum);
}