7-23 百钱买百鸡问题 (10 分)

这篇博客探讨了一道数学问题:如何用100元购买100只鸡,鸡分为公鸡、母鸡和小鸡,价格分别为5元、3元和1元3只。作者给出了C语言的程序实现,通过三层循环遍历所有可能的组合,确保每种鸡都有,并满足总金额和数量条件。程序会按公鸡数量从少到多输出前n种方案。当用户请求的方案数n超过3时,程序限制输出前3种方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公鸡每只5元,母鸡每只3元,小鸡1元3只,而且鸡必须整只买。100元钱买100只鸡(每一种鸡都要有),公鸡、母鸡、小鸡各多少只?请编写程序给出各种购买方案。

输入格式:

输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照公鸡只数从少到多排列的。

输出格式:

显示前n种方案中公鸡、母鸡、小鸡各多少只。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。

注意:如果全部方案不到n种,就顺序输出全部可能的方案。

解题思路:因为小鸡一元买三只,所以小鸡的个数一定是3的倍数,并且每种鸡都要有那么我们就让小鸡从3只开始加起,因为至多三种方案,所以用户输入3以上的数的时候我们让他变成3

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n > 3)
	{
		n = 3;
	}
	for (int i = 1; i < 100,n>0; i++)
		{
			for (int k = 1; k < 100; k++)
			{
				for (int j = 3; j < 100; j += 3)
				{	

					if (i + k + j == 100 && 5 * i + k * 3 + j / 3 == 100)
					{
						printf("%d %d %d\n", i, k, j);
						n--;
					}

				}

			}
		

	}

	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值