js酒瓶经典问题算法实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js酒瓶经典问题算法实现</title>
</head>
<body>

</body>
<script>
    // 题目:一瓶啤酒5块,5个瓶盖能换一瓶酒,3个瓶身换一瓶酒,100块能买几瓶酒
    var allJiu=0; //最终总酒数量
    function computed(jiuNum,lidNum,bottleNum) {
        // jiuNum  酒数量
        // lidNum  剩余总瓶盖数
        // bottleNum  剩余总瓶子数
        var lid=Math.floor(lidNum/5);
        lidNum=lidNum-lid*5+lid;  //剩余总瓶盖数


        var bottle=Math.floor(bottleNum/3);
        bottleNum=bottleNum-bottle*3+bottle+lid;  //剩余总瓶子数
        lidNum=lidNum+bottle;//更新剩余总瓶盖数

        allJiu=allJiu+jiuNum+bottle+lid;//更新已买酒总数量


        if((Math.floor(lidNum/5)==0)&&(Math.floor(bottleNum/3)==0)){
            console.log(allJiu)
            console.log(lidNum)
            console.log(bottleNum)
            var obj={allJiu:allJiu,lidNum:lidNum,bottleNum:bottleNum}
            console.log(obj)
            return obj
        }else{
            computed(0,lidNum,bottleNum)
        }
    }

    function money(mon){
        var jiuNum=lidNum=bottleNum=Math.floor(mon/5);
        computed(jiuNum,lidNum,bottleNum)
    }

    money(100)

</script>
</html>

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值