假设:
如果公鸡1只,母鸡1只,小鸡1只,则总价为:......,不对。
如果公鸡1只,母鸡1只,小鸡2只,则总价为:......,不对。
如果公鸡1只,母鸡1只,小鸡3只,则总价为:......,不对。
...........................
如果公鸡1只,母鸡2只,小鸡1只,则总价为:......,不对。
如果公鸡1只,母鸡2只,小鸡2只,则总价为:......,不对。
如果公鸡1只,母鸡2只,小鸡3只,则总价为:......,不对。
.............................
如果公鸡100只,母鸡100只,小鸡100只,则总价为:......,不对。
这种编程思想叫做“穷举”,就是将所有可能的答案都罗列出来,然后挨个去验证。
代码如下:
公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";}$count++;}}}echo "登录后复制
".$count;
结果:
公鸡:0,母鸡: 25,小鸡: 75公鸡:4,母鸡: 18,小鸡: 78公鸡:8,母鸡: 11,小鸡: 81公鸡:12,母鸡: 4,小鸡: 841030301
代码如下
$count = 0;for($gongji = 0;$gongji <= 100 / 5;$gongji++){for ($muji=0; $muji <= 100 / 3; $muji++) { $xiaoji = 100 - $gongji - $muji;if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){echo "登录后复制
公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";}$count++;}}echo "
".$count;
结果:
公鸡:0,母鸡: 25,小鸡: 75公鸡:4,母鸡: 18,小鸡: 78公鸡:8,母鸡: 11,小鸡: 81公鸡:12,母鸡: 4,小鸡: 84714
代码如下
$count = 0;for($gongji = 0;$gongji <= 100 / 5;$gongji++){for ($muji=0; $muji <= (100-$gongji*5) / 3; $muji++) { $xiaoji = 100 - $gongji - $muji;if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){echo "登录后复制
公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";}$count++;}}echo "
".$count;
结果:
公鸡:0,母鸡: 25,小鸡: 75公鸡:4,母鸡: 18,小鸡: 78公鸡:8,母鸡: 11,小鸡: 81公鸡:12,母鸡: 4,小鸡: 84364
总结:
直接用三重for循环是很容易想到的,但是三重循环的复杂度太大了,所以应该想到减少循环。直接把小鸡用总的鸡数减去公鸡和母鸡,就能减少一层循环,这样就能减少运行的时间,提高代码效率。
以上就是PHP百钱百鸡问题(三种解题思路及答案)的详细内容,更多请关注易企推科技其它相关文章!
本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/1152011.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!