请问这题java怎么做?

如何用程序实现?... 如何用程序实现? 展开
 我来答
mikemelon2012
推荐于2016-10-23 · TA获得超过3633个赞
知道大有可为答主
回答量:938
采纳率:87%
帮助的人:385万
展开全部

设公鸡数量为x,母鸡数量为y,小鸡数量为z,则由一共100只鸡,知 x + y + z = 100

由各自单价和总价为100(枚钱), 有: 5x + 3y + z/3 = 100

三元方程组,只有两个式子,因此有多种组合方式,是个穷举问题。


由于x, y, z必须是整数,因此可以用Java程序穷举一下,可以先计算一下它们的取值范围,

x 从 1 ~ 20,迭代步长为1

y 从  1 ~(100/3) 约=33,迭代步长为1

z 从  1 ~ (100*3)=300,迭代步长为3(因为不能剩下不到一块钱,总可以买小鸡)

题目的意思好像是说公鸡母鸡小鸡都要有,

(否则,直接买20只公鸡,或300只小鸡就得了,母鸡因不能整除不能只买母鸡)

因此三个数都从1开始迭代:


public class BuyChickenProblem {
    public static void main(String[] args) {
        int maxCock = 100/5;  //最大公鸡数
        int maxHen = 100/3+1; //最大母鸡数
        int maxChicken = 100*3; //最大小鸡数
        int cnt=0; //看看总共有多少种方案
        for(int x=1; x<=maxCock; x++) {
            for(int y=1; y<=maxHen; y++) {
                for(int z=1; z<=maxChicken; z++) {
                    int totalNums = x+y+z;
                    double totalMoney = 5*x+3*y+z/3.0;
                    if( totalNums==100  && totalMoney == 100) {
                        System.out.println((++cnt) + "--> 公鸡数=" + x +
                                              ",母鸡数=" + y +
                                              ",小鸡数=" + z +
                                              ",总钱数=" + totalMoney);
                    }
                }
            }
        }
    }
}


结果如下:

1--> 公鸡数=4,母鸡数=18,小鸡数=78,总钱数=100.0
2--> 公鸡数=8,母鸡数=11,小鸡数=81,总钱数=100.0
3--> 公鸡数=12,母鸡数=4,小鸡数=84,总钱数=100.0

可见一共三种方案(如果可以不全买三种鸡的话方案可能会多,你改一下程序里的循环起始值和终止值就行)

我改过后,是4种方案:

1--> 公鸡数=0,母鸡数=25,小鸡数=75,总钱数=100.0
2--> 公鸡数=4,母鸡数=18,小鸡数=78,总钱数=100.0
3--> 公鸡数=8,母鸡数=11,小鸡数=81,总钱数=100.0
4--> 公鸡数=12,母鸡数=4,小鸡数=84,总钱数=100.0

其中比上面的结果多出来的第一个方案里,公鸡数是0

无敌鳖
2015-01-05 · TA获得超过185个赞
知道答主
回答量:92
采纳率:67%
帮助的人:26.4万
展开全部
public class Chicken {
public static void main(String[] args) {
for(int i=0;i<=100;i++){
for(int j=0;j<=100;j++){
for(int k=0;k<=100;k++){
if(5*i+3*j+k/3==100&&i+j+k==100&&k%3==0){
System.out.println("公鸡的数量:"+i+"\t"+"母鸡的数量:"+j+"\t"+"小鸡的数量:"+k);
}
}
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式