$x的疑问
// for($m=1;$m<33;$m++){
// for($g=1;$g<20;$g++){
// $x=100-$g-$m;
// if($g+$m+$x==100&&$g*5+$m*3+$x/3==100){
// echo '公鸡有'.$g.'<br/>';
// echo '母鸡有:'.$m.'<br/>';
// echo '小鸡有:'.$x.'<br/>';
// echo '<hr/>';
// }
// }
// }
for($m=1;$m<33;$m++){
for($g=1;$g<20;$g++){
for($x=3;$x<300;$x=+3){
if($g+$m+$x==100&&$g*5+$m*3+$x/3==100){
echo '公鸡有'.$g.'<br/>';
echo '母鸡有:'.$m.'<br/>';
echo '小鸡有:'.$x.'<br/>';
echo '<hr/>';
}
}
}
}
老师,$x为什么必须设置为$x=100-$g-$m,后面恒等式中也有$g+$m+$x=100,不是一个意思么?为什么不能来个for循环呢?
正在回答 回答被采纳积分+1
同学你好,需要设置$x=100-$g-$m表达式的是两层循环。代码如下:
for($m=1;$m<33;$m++){ for($g=1;$g<20;$g++){ $x=100-$g-$m; if($g+$m+$x==100&&$g*5+$m*3+$x/3==100){ echo '公鸡有'.$g.'<br/>'; echo '母鸡有:'.$m.'<br/>'; echo '小鸡有:'.$x.'<br/>'; echo '<hr/>'; } } }
运行流程:
当m=1时,m小于33则开始循环
当g=1时,g小于20 开始循环,计算100-1-1的表达式得出x值,然后进行判断,1+1+98==100(成立)5+3+32.666==100(不成立)则g++键入下次循环
当g=2时,g小于20 开始循环,计算100-2-1的表达式得出x值,然后进行判断,2+1+97==100(成立)10+3+32.333==100(不成立)则g++键入下次循环......执行到g大于20时,循环结束开始外层循环的第二次循环。
当m=2时,m小于33则开始循环
当g=1时,g小于20 开始循环,计算100-1-2的表达式得出x值,然后进行判断,1+2+98==100(成立)5+6+32.333==100(不成立)则g++键入下次循环
当g=2时,g小于20 开始循环,计算100-2-2的表达式得出x值,然后进行判断,2+2+96==100(成立)10+6+32==100(不成立)则g++键入下次循环 ......
一直循环到 m=4,g=12 时,计算100-12-4的表达式得出x值。然后进行判断12+4+84==100(成立)并且60+12+28(成立)则进行输出。
然后一直执行到m大于33时,结束循环。如果同学不定义为$x=100-$g-$m,则无法获取到小鸡的数量,导致if判断不成立,导致无法计算出公鸡母鸡与小鸡的数量。
祝学习愉快!
- 参与学习 人
- 提交作业 626 份
- 解答问题 4930 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星