问题分析
首先,我们可以创建一个类来描述这个问题。
类中包含成员:总的头数量,总的腿数量,鸡的数量,兔的数量
包含函数:计算鸡的数量函数,计算兔的数量函数,输出鸡的数量函数,输出兔的数量函数等。
之后,构建一个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;
}