思路和代码如下:
//百元百鸡问题 穷举法:
// 核心思路:
/*
我们可以把代码分成两个部分,第一个部分是循环 第二部分是判断筛选
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 只是换行和划线,用于美观,不必在意
}
}
}
}
本人也是新手,如有漏洞欢迎大佬评价,我会虚心整改。谢谢。