枚举(百鸡问题)
直接看题目
题目描述: 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。 输入: 测试数据有多组,输入n。 输出: 对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。 样例输入: 40 样例输出: x=0,y=0,z=100 x=0,y=1,z=99 x=0,y=2,z=98 x=1,y=0,z=99
直接暴力枚举,见代码
#include <stdio.h> #include <stdlib.h> //枚举 void test_1(); int main() { test_1(); return 0; } //枚举(百鸡问题) void test_1(){ int n; while (scanf("%d",&n)!=EOF&&n!=0) { for (int x = 0; x<=100; x++) {//枚举x for(int y = 0;y<=100-x;y++){//枚举y int z = 100-x-y; if (5*x*3+y*3*3+z<=n*3) {//以防1/3精度缺失,等式两边同乘3 printf("x=%d,y=%d,z=%d\n",x,y,z); } } } } } /************************************************************** Problem: 1045 User: Numen_fan Language: C++ Result: Accepted Time:10 ms Memory:1020 kb ****************************************************************/
转载请注明出处:http://www.cnblogs.com/numen-fan/