亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    PHP百錢百雞問題(三種解題思路及答案)

    什么是百錢百雞?

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

    PHP百錢百雞問題(三種解題思路及答案)

    翻譯過來就是:

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

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

    第一種

    假設:

    如果公雞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)的復雜度太大了,所以應該想到減少循環(huán)。直接把小雞用總的雞數(shù)減去公雞和母雞,就能減少一層循環(huán),這樣就能減少運行的時間,提高代碼效率。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號