int minCoins(int s[], int m , int V) { int res= INT_MAX; if(V==0) return 0; int i; for(i=0; i<m; i++) { if(s[m]<=V) { int sub_res = minCoins(s, m, V-s[i]); if(sub_res != INT_MAX && sub_res+1 <res) res = sub_res+1; } } return res; }
int main() { int s[] ={1,2,3}; int m = sizeof(s)/sizeof(s[0]); printf("Minimum noof coins req: [ %d ]\n",minCoins(s, m, 5)); return 0; }
int minCoins(int coins[], int len, int n) { if (len == 1) return n; int minCount = INT_MAX; for (int i = n/coins[len-1]; i >= 0; i--) { minCount = min(minCount, minCoins(coins, len-1, n-i*coins[len-1])+i); } return minCount; }
int main(int argc, _TCHAR* argv[]) { int min = minCoins(99); return 0; }
int minCoins(int n) { if (n <= 0) return 0; int coins[] = {1, 5, 10, 25}; return minCoins(coins, sizeof(coins)/sizeof(int), n); }