中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?html
(1) 使用 for 语句对 3 种鸡的数嫌在事先肯定好的范围内进行穷举并判断,对知足条件的 3 种鸡的数量按指定格式输出,不然进行下次循环。微信
(2) 程序代码以下:学习
1 #include <stdio.h> 2 int main() 3 { 4 int cock,hen,chick; /*定义变童为基本整型*/ 5 6 for(cock=0;cock<=20;cock++) /*公鸡范围在 0~20 之间*/ 7 8 for(hen=0;hen<=33;hen++) /*母鸡范围在 0~33 之间*/ 9 10 for(chick=3;chick<=99;chick++) /*小鸡范围在 3~99 之间*/ 11 12 if(5*cock+3*hen+chick/3==100) /*判断钱数是否等于 100*/ 13 14 if(cock+hen+chick==100) /*判断购买的鸡数是否等于 100*/ 15 16 if(chick%3==0) /*判断小鸡数是否能被 3 整除*/ 17 18 printf("公鸡:%d,母鸡:%d,小鸡:%d\n",cock,hen,chick); 19 20 return 0; 21 }
运行结果:spa
公鸡: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 的倍数)。code
在肯定了各类鸡的范围后进行穷举并判断,判断的条件有如下 3 点:
(1) 所买的 3 种鸡的钱数总和为 100。
(2) 所买的 3 种鸡的数量之和为 100。
(3) 所买的小鸡数必须是 3 的倍数。htm
感谢你的阅读,请用心感悟!更多内容请关注微信公众号:C语言自学网 ;但愿能够帮到爱学习的你!!分享也是一种快乐!!!请接力。。。blog
点击查看原文,谢谢!get