Dynamic Programming

Dynamic Programming

by Yogesh Rathod

JavaScript

/*Given a monetary amount, write a program which outputs a combination of different denominations of coins which add up to the amount. The algorithm should use the minimum number of coins.*/
var s=[1,2,3,4,5]
m=5
n=5;
function count(s,m,n){
if(n==0)
return 0;
if(n <= 0) 
return 0;
if(m <= 0 && n >= 1)
return 0;

return Math.min(count(s,m-1,n),count(s,m,n-s[m-1]))+1
}

//alert(count(s,m,n))
var s=[1,2,3,4,5,6,10]
m=7
n=10;

var dp = new Array();
for(k=0; k <= n+1; k++){
dp[k] = n+1;
}
function count1(s,m,n){
dp[0] = 0;
for(i=1;i <= n+1;i++){
for(j=0;j<m;j++){
if(s[j] <= i)
 dp[i] = Math.min(dp[i],dp[i-s[j]]+1)
}
}
alert(dp[n])
}

count1(s,m,n)