2个回答
展开全部
设公鸡数量为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
展开全部
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);
}
}
}
}
}
}
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);
}
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询