百钱百鸡问题(C++)

定义一个类,求解百钱百鸡问题。我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一只钱五,鸡母一只钱三,鸡雏三只钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?类中包括,鸡翁、鸡母、鸡雏各自数量的3个私有成员,其各自价格如上所述,求任意钱数下,是否有解,无解情况下输出:此题无解,有解情况下依次输出所有解。

输入格式:

输入钱数。

输出格式:

无解情况下输出:此题无解;
有解情况下依次输出所有解。

输入样例:

在这里给出一组输入。例如:

100(100为钱数)

输出样例:

在这里给出相应的输出。例如:

公鸡0只,母鸡25只,小鸡75只
公鸡4只,母鸡18只,小鸡78只
公鸡8只,母鸡11只,小鸡81只
公鸡12只,母鸡4只,小鸡84只

输入样例:

在这里给出一组输入。例如:

495

输出样例:

在这里给出相应的输出。例如:

此题无解

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
using namespace std;

class combination
{
	friend void judge(combination& gg, int n);//将判断的函数设置成类的友元 从而在类外访问私有成员属性
private:
	int cock;
	int hen;
	int chick;
};

void judge(combination& gg, int n)//传入的为对象的引用(地址传递)
{
	int mark = 1;//判断是否有解的标记
	for (gg.cock = 0; gg.cock <= n / 5; gg.cock++)
		for (gg.hen = 0; gg.hen <= n / 3; gg.hen++)
			for (gg.chick = 0; gg.chick <= n; gg.chick++)//这里不代表小鸡数量,而是买小鸡花的钱
				if (gg.cock + gg.hen + 3 * gg.chick == 100 && 5 * gg.cock + 3 * gg.hen + gg.chick == n)
				{
					printf("公鸡%d只,母鸡%d只,小鸡%d只\n", gg.cock, gg.hen, 3 * gg.chick);
					mark = 0;
				}
	if (mark) cout << "此题无解";
}

int main()
{
	int n; cin >> n;

	combination gg;
	judge(gg, n);

	return 0;
}

   2e982d51560446f29d967820e7150ddc.png     利用三层循环求解

    保持热爱 奔赴星海 ^_^

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值