歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言經典題目:百錢買百雞

百錢買百雞問題

公元錢五世紀,我國古代數學家張丘建在《算經》一書中提出了“百雞問題”:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?

分析:假設公雞有x只,母雞y只,小雞z只。那x+y+z==100,且根據價格5*x+3*y+z/3==100。只要滿足上面的兩個等式的數量就行。我們可以利用C語言3重循環來窮舉所有的答案。

但是雞的數目都是正整數,z/3可能會產生小數。所以不妨設買小雞所用的錢為變量。

不妨設公雞數為int cock;母雞數為hen;買小雞所用的錢為p_chickens;

還有分析等式發現公雞的數量是<20只的,母雞的數量是<=33只的,買小雞所用的錢為p_chickens;

所以程序如下:

  1. #include<stdio.h>   
  2. int main(void)  
  3. {  
  4.     int c;             //公雞的數量   
  5.     int hen;           //母雞的數量   
  6.     int p_chickens;   //買小雞所花的錢   
  7.     for(c=0;c<20;c++)  
  8.     for(hen=0;hen<33;hen++)  
  9.     for(p_chickens=0;p_chickens<33;p_chickens++)  
  10.     if((5*c+3*hen+p_chickens==100)&&(c+hen+3*p_chickens==100))  
  11.     printf("公雞有%d只,母雞有%d只,小雞有%d只\n",c,hen,3*p_chickens);   
  12.   
  13.     return 0;  
  14. }  

得到的答案是:

如果公雞的數量不能為0,可以去掉第一個答案。

Copyright © Linux教程網 All Rights Reserved