From ecdcb31e88a6872cfb27d633ee9f39ac552e0938 Mon Sep 17 00:00:00 2001 From: Krishanu Chakraborty Date: Mon, 4 Oct 2021 13:23:00 +0530 Subject: [PATCH] Create coin_change.cpp --- coin_change.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 coin_change.cpp diff --git a/coin_change.cpp b/coin_change.cpp new file mode 100644 index 0000000..c11c020 --- /dev/null +++ b/coin_change.cpp @@ -0,0 +1,30 @@ +#include +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); +}