$x的疑问

$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

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕小尤 2019-11-27 10:14:40

同学你好,需要设置$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判断不成立,导致无法计算出公鸡母鸡与小鸡的数量。

祝学习愉快!

好帮手慕小尤 2019-11-26 17:25:14

同学你好,同学是想问$x=100-$g-$g与三次循环的两种实现方式的关系吗?如果是,则是没有关系的。两次循环是通过循环得到公鸡与母鸡的只数,然后通过100减去公鸡与母鸡的只数得出小鸡的数量。三次循环是通过循环来确定数量。所以两个没有关系。如果不是请同学重新描述一下问题。

祝学习愉快!

  • 提问者 cfrq_xuan #1
    我意思是,如果不定义为$x=100-$g-$m,会不会不能得出结果
    2019-11-26 20:22:47
好帮手慕小尤 2019-11-26 15:02:21

同学你好,三个循环代码参考:

for($x=1;$x<=20;$x++){
    for($y=1;$y<=33;$y++){
        for($z=1;$z<=100;$z++){
            if(($x+$y+$z)==100 && ($x*5+$y*3+$z/3)==100 ){
                echo '公鸡有',$x,'<br/>母鸡有:',$y,'<br/>小鸡有:',$z,'<hr/>';
            }
        }
    }
}

祝学习愉快!

  • 提问者 cfrq_xuan #1
    那为什么一定要要把$x=100-$g-$g?它这种和三个未知数,三个方程能解答,有什么关系吗?
    2019-11-26 15:26:48
好帮手慕小尤 2019-11-25 10:09:31

同学你好,1. $x=100-$g-$m:是将$x当为小鸡,然后通过100减去公鸡和母鸡的只数,就是小鸡的只数变量。

2. $g+$m+$x==100 是判断公鸡+母鸡+小鸡的数量是否是100。所以$x=100-$g-$m与$g+$m+$x==100意思是不一样的。

3. 建议同学使用两个循环实现,减少了循环次数,提高运行效率。

祝学习愉快!

  • 提问者 cfrq_xuan #1
    如果用三个循环的话,应该如何写?谢谢!
    2019-11-25 21:19:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师