【C語言程序設計】百錢買百雞(百錢百雞,百雞問題)!


中國古代數學家張丘建在他的《算經》中提出了一個著名的“百錢買百雞問題”,雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?

 

實現過程:

使用 for 語句對 3 種雞的數嫌在事先確定好的范圍內進行窮舉並判斷,對滿足條件的 3 種雞的數量按指定格式輸出,否則進行下次循環。

 

程序代碼如下:

#include <stdio.h>

int main()

{

    int cock,hen,chick;  /*定義變童為基本整型*/

    for(cock=0;cock<=20;cock++)  /*公雞范圍在 0~20 之間*/

    for(hen=0;hen<=33;hen++)  /*母雞范圍在 0~33 之間*/

    for(chick=3;chick<=99;chick++)  /*小雞范圍在 3~99 之間*/

    if(5*cock+3*hen+chick/3==100)  /*判斷錢數是否等於 100*/

    if(cock+hen+chick==100)  /*判斷購買的雞數是否等於 100*/

    if(chick%3==0)  /*判斷小雞數是否能被 3 整除*/

    printf("公雞:%d,母雞:%d,小雞:%d\n",cock,hen,chick);

    return 0;

}

 

運行結果:

公雞:0,母雞:25,小雞:75

公雞:4,母雞:18,小雞:78

公雞:8,母雞:11,小雞:81

公雞:12,母雞:4,小雞:84

 

技術要點:

根據題意設公雞、母雞和雛雞分別為 cock、hen 和 chick。

    ✪ 如果 100 元全買公雞,那么最多能買 20 只,所以 cock 的范圍是大於等於 0 且小於等於 20;

    ✪ 如果全買母雞,那么最多能買 33 只,所以 hen 的范圍是大於等於 0 且小於等於 33;

    ✪ 如果 100 元錢全買小雞,那么最多能買 99 只(根據題意小雞的數量應小於 100 且是 3 的倍數)。

在確定了各種雞的范圍后進行窮舉並判斷,判斷的條件有以下 3 點:

        (1) 所買的 3 種雞的錢數總和為 100。

        (2) 所買的 3 種雞的數量之和為 100。

        (3) 所買的小雞數必須是 3 的倍數。


 

不管你是轉行也好,初學也罷,進階也可,如果你想學編程,進階程序員~

【值得關注】我的 編程學習交流俱樂部 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM