PHP百錢百雞經(jīng)典問題的源碼-創(chuàng)新互聯(lián)

什么是百錢百雞?

我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出的數(shù)學(xué)問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?

創(chuàng)新互聯(lián)主營曲陽網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),曲陽h5重慶小程序開發(fā)公司搭建,曲陽網(wǎng)站營銷推廣歡迎曲陽等地區(qū)企業(yè)咨詢

PHP百錢百雞經(jīng)典問題的源碼

翻譯過來就是:

公雞5元一只,母雞3元一只,小雞1元3只,100元買了100只雞,問各多少只?

下面利用PHP分三種方法來解決這個問題:

第一種

假設(shè):

如果公雞1只,母雞1只,小雞1只,則總價為:......,不對。

如果公雞1只,母雞1只,小雞2只,則總價為:......,不對。

如果公雞1只,母雞1只,小雞3只,則總價為:......,不對。

...........................

如果公雞1只,母雞2只,小雞1只,則總價為:......,不對。

如果公雞1只,母雞2只,小雞2只,則總價為:......,不對。

如果公雞1只,母雞2只,小雞3只,則總價為:......,不對。

.............................

如果公雞100只,母雞100只,小雞100只,則總價為:......,不對。

這種編程思想叫做“窮舉”,就是將所有可能的答案都羅列出來,然后挨個去驗證。

代碼如下:

<?php
$count = 0;
for($gongji = 0;$gongji <= 100;$gongji++){
for ($muji=0; $muji <= 100; $muji++) { 
for ($xiaoji=0; $xiaoji <= 100 ; $xiaoji++) { 
if($gongji + $muji + $xiaoji ==100 && $gongji*5 + 
$muji*3 + $xiaoji / 3 == 100){
  echo "<br>公雞:$gongji,母雞: $muji,小雞: $xiaoji";
}
$count++;
}
}
}
echo "<br>".$count;

結(jié)果:

公雞: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 "<br>公雞:$gongji,母雞: $muji,小雞: $xiaoji";
}
$count++;
}
}
echo "<br>".$count;

結(jié)果:

公雞: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 "<br>公雞:$gongji,母雞: $muji,小雞: $xiaoji";
}
$count++;
}
}
echo "<br>".$count;

結(jié)果:

公雞:0,母雞: 25,小雞: 75公雞:4,母雞: 18,小雞: 78公雞:8,母雞: 11,小雞: 81公雞:12,母雞: 4,小雞: 84364

總結(jié):

直接用三重for循環(huán)是很容易想到的,但是三重循環(huán)的復(fù)雜度太大了,所以應(yīng)該想到減少循環(huán)。直接把小雞用總的雞數(shù)減去公雞和母雞,就能減少一層循環(huán),這樣就能減少運(yùn)行的時間,提高代碼效率。

以上就是PHP百錢百雞問題(三種解題思路及答案)的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

分享題目:PHP百錢百雞經(jīng)典問題的源碼-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article12/cddddc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、云服務(wù)器、手機(jī)網(wǎng)站建設(shè)、App開發(fā)、企業(yè)建站、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司