题目描述:
用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。
输入:
测试数据有多组,输入n。
输出:
对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。
代码提供:http://blog.csdn.net/zinss26914/article/details/8000489
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,y,z,n;
while(scanf("%d",&n) != EOF)
{
for(x = 0; x < (int)(n / 5); x++)
{
for(y = 0; y < (int)(n / 3); y++)
{
z = 100 - x - y;
if( (z + 15 * x + 9 * y <= n * 3 ) && (z >= 0) )
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
return 0;
}
这里其实就是两个公式,我是一次就AC了,所以答不上神马注意事项,只是编写的时候有一点计算心得
(1)x,y的取值范围,假设x为大鸡,y为中鸡,很多人可能直接判断条件就是0 (2)因为我定义的x,y,z都为整形,所以判断条件时候需要等号两边都*3
