PHP百元百鸡(每只鸡至少有一个)

思路和代码如下:

    //百元百鸡问题 穷举法:
    // 核心思路:
    /*
    我们可以把代码分成两个部分,第一个部分是循环 第二部分是判断筛选
    1、当 公鸡0 母鸡0 小鸡1的时候 总价==100? 不等于,继续循环
    2、当 公鸡0 母鸡0 小鸡2的时候 总价==100? 不等于,继续循环
    3、当 公鸡0 母鸡0 小鸡3的时候 总价==100? 不等于,继续循环
    4、当 公鸡0 母鸡0 小鸡4的时候 总价==100? 不等于,继续循环
    .........(以此类推)
    当全部循环结束的时候,就可以循环出所有买鸡的买法搭配,然后添加条件筛选出你需要的那种方式;
    */
    // 用i来表示公鸡的数量,最高(全买公鸡)也有20只所以i<=20
    for ($i = 0; $i <= 20; $i++) {
        //同理,用j表示母鸡的数量
        for ($j = 0; $j <= 33; $j++) {
            // 用$x表示小鸡的数量,注意因为小鸡是一元三个,所以要先计算一只鸡多少钱,再算100元可以买多少个小鸡
            for ($x = 0; $x <= 333; $x++) {
                // 计算总价钱是否小于100,小于的话就重复最外层循环
                $total = $i * 5 + $j * 3 + $x * 0.33;
                // 判断条件(当总价为100且每种鸡至少买1个的情况下,有多少种买法),然后筛选 
                if ($total == 100 && $i > 0 && $j > 0 && $x > 0) {
                    echo '公鸡:' . $i . '<br/>';
                    echo '母鸡:' . $j . '<br/>';
                    echo '小鸡:' . $x . '<hr/>'; // br 和 hr 只是换行和划线,用于美观,不必在意
                }
            }
        }
    }

本人也是新手,如有漏洞欢迎大佬评价,我会虚心整改。谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值