《算经》中曾提出一个“百钱买百鸡”问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?(即公鸡5钱一只,母鸡3钱一只,小鸡三只一钱。问:100钱买一百只鸡,公鸡、母鸡、小鸡各多少只?)
实现过程:
使用for语句对三种鸡的数目在确定好的范围内进行穷举并判断,对满足条件的3种鸡数目按照指定格式输出,否则进行下次循环。
代码如下:
#includeint main() { int cock,hen,chick; for(cock=0;cock<=20;cock++) for(hen=0;hen<=33;hen++) for(chick=3;chick<=99;chick++) if(5*cock+3*hen+chick/3==100) if(cock+hen+chick==100) if(chick%3==0) printf("公鸡:%d,母鸡:%d,小鸡:%dn",cock,hen,chick); return 0; }
思路:如果一百元全买公鸡,那么最多可以买20只,所以0<=cock<=20;如果全买母鸡,那么最多能买33只,所以0<=hen<=33;如果全买小鸡,那么最多只能买99只(由题可知,三钱一只小鸡,那么小鸡的数量应当是3的倍数而且小于100)。
判断条件:
(1)所买的3种鸡的钱数总和为100;
(2)所买的3种鸡的数量之和为100;
(3)所买的小鸡数必须是3的倍数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)