歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C語言經典題目:百錢買百雞

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

日期:2017/3/1 10:26:46   编辑:Linux編程

百錢買百雞問題

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

分析:假設公雞有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. return 0;
  13. }

得到的答案是:

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

Copyright © Linux教程網 All Rights Reserved