【C++】鸡兔同笼问题 用类解决

本文通过创建C++类来解决鸡兔同笼问题,包括总头数、总腿数、鸡的数量和兔的数量成员变量,以及相关计算和输出函数。在main函数中使用while循环持续运行,并通过if判断确保计算结果合理。算法设计基于两个方程求解,代码附录给出详细实现。

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

 问题分析

首先,我们可以创建一个类来描述这个问题。

类中包含成员:总的头数量,总的腿数量,鸡的数量,兔的数量

包含函数:计算鸡的数量函数,计算兔的数量函数,输出鸡的数量函数,输出兔的数量函数等。

之后,构建一个main 主函数

为了使程序可以不退出反复运行,可以使用while 函数来作为循环。还要判断计算出来的值是否符合实际情况,应使用if语句来判断。

算法设计

设鸡的个数为x,兔的个数为y,鸡有两条腿,兔有四条腿,若鸡和兔总数量为n,总腿数为m。

则有方程:x+y=n,2x+4y=m.

解方程为:x=2n-m/2,y=n-x.

即:鸡的数量=(4*头的总数量-脚的总数量)/2

兔的数量=头的总数量-鸡的数量

条件:

需要判断鸡兔数量是否符合实际即鸡兔数量是否都大于1

为符合实际也需要判断脚的总数量是否为偶数

运行实列

 

代码附录

# include <iostream>
# include <cstdio>
using namespace std;
//最开始的导入库代码

class T//创建一个类
{
public:
	T(int x ,int y)
	{
		head = x; 
		foot = y;
	}
	
	int m_chick()//计算鸡的数量函数
	{
		chick = (4 * head - foot) / 2;
		return chick;
	}
    int m_rabbit()//计算兔的数量函数
	{
		rabbit = head - chick;
		return rabbit;
	}
	void prchick()//输出鸡的数量函数
	{
		cout << "鸡的数量" << chick << endl;
	}
	void prrabbit()//输出兔的数量函数
	{
		cout << "兔的数量" << rabbit << endl;
	}

private:
   int  head;
   int	foot;
   int	chick;
   int	rabbit;

	
};
//main函数
int main()
{
	int x, y;
	int flag = 1;//循环标志
	while (flag) 
	{
		cin >> x >> y;
		if (y % 2 == 0)//判断腿数是否为偶数(是否符合实际的一个条件)
		{
			T p1(x, y);//创建一个类
			p1.m_chick();
			p1.m_rabbit();
			if (p1.m_rabbit() >= 0 && p1.m_chick() >= 0)//判断计算出的兔的数量和鸡的数量是否大于0(是否符合实际的第二个条件)
			{


				p1.prchick();
				p1.prrabbit();//如果符合这两个实际条件则输出数据
			}
			else
			{
				cout << "输入数据有误" << endl;
			}
		}
		else
		{
			cout << "输入数据有误" << endl;
		}


		char c;
		cout << "continue or not(Y/N)?" << endl;
		cin >> c;//循环标志
		if (c == 'N')
			flag = 0;
	}
	
	
	system("pause");
	return 0;

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值