百鸡百钱问题

通过三重循环解决百钱买百鸡问题,探讨不同数量的公鸡、母鸡、小鸡购买组合,使得花费总额和购买数量同时满足题目要求。

题目描述:

百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100 只鸡,公鸡、母鸡、小鸡各买多少只?

本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n 只鸡,问公鸡、母鸡、小鸡各买多少只?

输入格式

输入一个正整数 n。

输出格式

如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。

如果无解,输出"No Answer."

数据范围

1≤n≤200

输入样例 

100

输出样例 

0 25 75
4 18 78
8 11 81
12 4 84

解题思路 

本题主要考察for循环嵌套,只需用三个for循环分别控制公鸡,母鸡,小鸡个数,且循环中需要加入判断条件,小鸡个数必须是的倍数,三种鸡综合为n,三种鸡所花费钱的总和为n,即可找出满足条件的三种鸡的组合。

代码运行 

int main(){
	int a,b,c,n,k=0;
	scanf("%d",&n);
	for(a=0;a<n;a++){//公鸡
		for(b=0;b<n;b++){//母鸡
			for(c=0;c<n;c++){//小鸡
				if(a*5+b*3+c/3==n&&c%3==0&&a+b+c==n){/*满足花费总金额和三种鸡
				个数等于n,且小鸡为三的倍数*/
					printf("%d %d %d\n",a,b,c);
					k++;//用于记录三种鸡是否有满足条件的组合
				}				
			}
		}
	}
	if(k==0){//如果没有满足条件的组合
		printf("No Answer.");
	}
	return 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值