已知公鸡5元一只,母鸡3元一只,小鸡1元一只,用100元买100只鸡,问公鸡,母鸡,小鸡各多少只?
算法实现:设变量x,y和z分别表示公鸡,母鸡和小鸡的个数,由于方程组可能有多个解,设变量count表示解的个数,注意到小鸡1元三只,在判断总价是否满足时要先判断z是否是3的倍数。程序如下:
#include <iostream>
using namespace std;
void Chicken( );
int main( )
{
Chicken( );
return 0;
}
void Chicken( )
{
int x, y, z, count = 0;
for (x = 0; x <= 20; x++)
{
for (y = 0; y <= 33; y++)
{
z = 100 - x - y; //满足共100只
if ((z % 3 == 0) && (5 * x + 3 * y + z/3 == 100)) //满足总价100元
{
count++; //解的个数加1
cout<<"公鸡:"<<x<<"母鸡:"<<y<<"小鸡:"<<z<<endl;
}
}
}
if (count == 0)
cout<<"问题无解"<<endl;
}