硬币问题
10元 用 1 2 5 有多少种凑法
也是动态规划的方式 当10元里面有一个5元 那么实际上问题就变成了5元怎么凑(是指用 1 2 怎么凑)
var sum = 10; var arr = [1, 2, 5]; var selected = []; function get(sum, arr){ if( sum === 0 ) { console.log(selected); return; } var thisArr = [].concat(arr); var value = thisArr.pop(); var count = parseInt(sum/value); //不要用toFixed() 那个是保留精度的同时四舍五入 if(value ===1){ selected.push(value + ':' + sum); get(0); selected.pop(); }else{ for (var i = count ; i >= 0; i--) { selected.push(value + ':' + i); get(sum - i*value, thisArr); selected.pop(); }; } } get(10,arr);