JS学习第四天之穷举法

算法之穷举法

顾名思义,所谓的穷举法就是把问题的所有解决方案都一一找出来,此法适用于一个问题有多种解决方案,或找最佳方案等。

小明去超市买商品,手里100元发现,毛巾5元/条 牙刷2元/只 牙膏 10元/支,问:将100元花完,共有多少种购买方案?

思路分析:

  1. 找到条件和问题

    1. 买毛巾、牙膏或牙刷的总价为100元
    2. 找出购买的方案
  2. 先转化为数学问题
    设毛巾数为i,牙膏数为j,牙刷数为k;
    则5i+2k+10*j=100 成立的方案

  3. 确定循环为for循环和if语句判断

  4. 输出结果

代码如下

var n = 0;
        //控制牙膏
        for (var i = 0; i < 10; i++) {
            //控制毛巾
            for (var j = 0; j < 20; j++) {
                //控制牙刷
                for (var k = 0; k < 50; k++) {
                    //判断总价
                    if (2 * k + 5 * j + 10 * i == 100) {
                        n++;  //计数器
                    }
                }
            }
        }
        console.log("共有&nbsp;"+n+"&nbsp;钟方案	");

总结:

遇到问题不能想着一下就做出来了,要静下心来,分步去做,逐步简化问题,最终把问题解决掉。

注意

做题时,一定要注意细节,不要错看条件或问题,对于代码的书写要注意代码拼写和逻辑,更要注意代码书写格式和注释。最后遇见错误要锻炼调错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值