/*
程序演示:
百钱买百鸡的的问题:
鸡公一个,值钱五,鸡母值钱三,小鸡值钱一,百钱买百鸡,问公鸡,母鸡,小鸡各是几个
分析:
方程式如下:
a+b+c=100(百鸡)
5a+3b+c/3=100(百钱)
c%3=0
*/
/*
#include "stdio.h"
void main()
{
int x, y ,z; //定义三个数进行循环
for (x=0; x<=100; x++)
{
for (y=0; y<=100; y++)
{
for (z=0; z<=100; z++)
{
if ((x+y+z==100)&&(5*x+3*y+z/3==100)&&(z%3==0)) //满足上面的条件时,就得出相应的结果
{
printf("x=%d,y=%d,z=%d\n",x, y, z);
}
}
}
}
}
*/
/*
对于上面的程序是时间复杂度是很大的,101*101*101的时间复杂度,可以对上面的程序进行优化
分析:上面的公鸡最多也就是买20个,母鸡最多是买33个,小鸡个数就等于100-公鸡和母鸡剩下的钱来买
*/
#include "stdio.h"
void main()
{
int x, y, z;
for (x=0; x<=20; x++)
{
for (y=0; y<=33; y++)
{
z=100-x-y;
if ((5*x+3*y+z/3==100) && (z%3==0))
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}