码迷,mamicode.com
首页 > 其他好文 > 详细

硬币问题

时间:2015-04-16 01:23:32      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:

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);

 

硬币问题

标签:

原文地址:http://www.cnblogs.com/cart55free99/p/4430662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!