/*
名字:百钱百鸡
内容:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现要用百钱买百鸡。
请问公鸡、母鸡、小鸡各多少只?
作答者:小白杨
收获:1、审题时就有错误,cock、hen、chicken均可以为零,只要最后有一百只鸡即可。
2、优化:第三层循环可以用chicken = 100-cock-hen代替.
*/
#include <stdio.h>
int main()
{
int cock,hen,chicken;
int num[20][3];
int j,i = 0;
for(cock=0;cock<20;cock++) // cock的取值在0~20之间
{
for(hen=0;hen<33;hen++) //hen的取值在0~33之间
{
for(chicken=0;chicken<100;chicken+=3) //chicken的取值为3的倍数
{
if(cock+hen+chicken==100 && (5*cock + 3*hen +chicken/3 == 100))
{
num[i][0] = cock;
num[i][1] = hen;
num[i][2] = chicken;
i++;
}
}
}
}
printf("共有%d种可能:\n",i);
for(j=0;j<i;j++)
{
printf("%d\t%d\t%d\n",num[j][0],num[j][1],num[j][2]);
}
return 0;
}