//假设母鸡每只5元,公鸡每只3元,小鸡三只一元。现有100元钱要求买100只鸡,问有几种方案。
#include<stdio.h>
#include<math.h>
//法一:三重循环
int main()
{
int x, y, z;
for (x = 0; x <= 100; x++)
for (y = 0; y <= 100; y++)
for (z = 0; z <= 100; z++)
{
if (z % 3 == 0 && x + y + z == 100 && 5 * x + 3 * y + z / 3 == 100)
printf("%d,%d,%d\n", x, y, z);
}
return 0;
}
//法二:二重循环
// for(x=0;x<=20;x++)
// for(y=0;y<=33;y++)
// {z=100-x-y
// if(z%3==0&&5*x+3*y+z/3==100)
// printf(".......")}
//
//法三:一重循环。解方程消去z,得x与y的方程式。假设全为x,得x<=14;再将x移到等式右侧表示y,得x为4的倍数
//for(x=0;x<=14;x+=4)
/* { y=25-7*x/4;
z=100-x-y;
if(z%3==0&&5*x+3*y+z/3==100)
printf(“%d,%d,%d\n”....)
}*/