百钱百鸡问题

题目:

中国古代数学家张丘建在他的算经中提到著名的百钱百鸡问题,公鸡一价钱5,母鸡一价钱三,小鸡3价钱1,百钱买百鸡,问公鸡、母鸡、小鸡各几只?

解题方向:

通过考察嵌套循环来实现对多重语句控制

分析

设公鸡、母鸡、小鸡的个数分别为x、y、z,根据题目意思得出x最大值为20,所以x的值在0~20之间,同理,得出y的值在0-33之间,z在0-300之间

注意

x+y+z=100

循环选择:

第一步:

退出条件循环---do while循环

入口条件循环

第二步:

不确定循环---while循环

计数循环----for循环

此题可知为计数循环,因此用for循环

流程图

百钱百鸡问题_第1张图片

编程实现:

#include 
int main()
{
	int x, y, z;//定义三种鸡变量
	
	for (x = 0; x <= 20; x++)//外层循环,控制公鸡数
	{
		for (y = 0; y <= 33; y++)//内层循环,控制母鸡数
		{
			z = 100 - (x + y);
			if (z % 3 == 0 && (5 * x) + (3 * y) + (z / 3) == 100)//判断满足情况
			{
				printf("公鸡数=%d,母鸡数=%d,小鸡数=%d\n", x, y, z); 

			}

		}

	}
	return 0;





	
}
    

总结:

对于一个考虑循环的题目,可以先判断是哪种循环,然后再进行编程书写,其次,合理利用流程图也是解决问题的一大助力。(给大家留个流程图写法)

百钱百鸡问题_第2张图片

你可能感兴趣的:(c语言)