假设鸡翁个数为i,鸡母个数为j,鸡雏个数为k。
首先是列出两个方程i+j+k=100,5*i+3*j+k\3=100。
其中0<=i<=100/5,0<=j<=100/3,0<=k<=3*100。
然后即可根据i、j、k范围来写代码啦。
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<=100/5;i++)
{
for(int j=0;j<=100/3;j++)
{
for(int k=0;k<=3*100;k++)
{
if((i+j+k==100)&&(5*i+3*j+k/3==100)&&(k%3==0))
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
return 0;
}
上述三重循环,其实可以进一步优化,即当i和j确定后,可以利用i+j+k=100直接确定k,这样就少一层循环。
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<=100/5;i++)
{
for(int j=0;j<=100/3;j++)
{
int k=100-i-j;
if((5*i+3*j+k/3==100)&&(k%3==0))
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
return 0;
}