枚举(百鸡问题)

直接看题目

题目描述:
    用小于等于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
****************************************************************/

 

posted @ 2017-03-06 11:49  小小范同学  阅读(357)  评论(0编辑  收藏  举报