《百钱买百鸡》c语言(循环结构)
《算经》中曾提出一个“百钱买百鸡”问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?(即公鸡5钱一只,母鸡3钱一只,小鸡三只一钱。问:100钱买一百只鸡,公鸡、母鸡、小鸡各多少只?)
实现过程:
使用for语句对三种鸡的数目在确定好的范围内进行穷举并判断,对满足条件的3种鸡数目按照指定格式输出,否则进行下次循环。
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*鸡翁即公鸡,用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,小鸡:%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的倍数。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码