用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。
解题思路
- x,y的取值范围,假设x为大鸡,y为中鸡,很多人可能直接判断条件就是0 <= x <= 100 || 0 <= y <=100,其实咱都学过数学或者有过实际买东西的经验,买东西的时候是跟实际的金钱挂等号的,而不是跟你的购物欲望划等号。所以这里的x和y的取值应该是 0 <= x <= (int)(money / 5) || 0 <= y <=(int)(money/3)
- 因为我定义的x,y,z都为整形,所以判断条件时候需要等号两边都*3
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.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((15 * x + 9 * y + z <= n * 3) && z >= 0)
- printf("x=%d,y=%d,z=%d\n", x, y, z);
- }
- }
- }
-
- return 0;
- }