条件:
公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡?有多少买法?
设:公鸡买x只,母鸡y只,小鸡n只,则,x+y+n==100(只)因为只需要买100只,最多不能超过100只。
钱数上:5x+3y+3/n==100(元),【切记,小鸡的价格是数量除以3】只有100元,多了没有。
又因为,100元最多买公鸡20只/母鸡33只/小鸡100(因为只需要买100只,尽管钱数可以买300只,但是不需要都是多余的)只。
解答:
for(var x = 0; x <= 20; x++){
for(var y = 0; y <= 33; y++){
for(var n = 0; n <= 100; n++){
if ((x + y + n == 100) && (5*x + 3*y + n/3 == 100)) {
document.write(`需要公鸡:${x} 只,母鸡:${y} 只,小鸡:${n} 只。<hr>`)
}
}
}
}
详解:
首先我们已经了解到的条件有:
1、可以混合买;
2、100元必须花尽;
3、必须买100只鸡;
4、公鸡、母鸡、小鸡可以选择任意一种不买,只要满足2、3条件即可;
我们来解析第一个for
公鸡最少可以买0只,x = 0;最多可以买20只, x <= 20;
母鸡最少可以买33只,y = 0; 最多可以买33只,y <= 33;
小鸡最少可以买0只,n = 0; 最多可以买100只, n <= 100;
这时候用for的循环和变量来进行第一次运算,我买0只公鸡,要买多少只母鸡和小鸡才能满足100只鸡;
设置必要条件,if语句:
判断两个必要条件2和3; 这两个条件都满足才会终止循环,所以我们用 && 来进行判断;
最后得出每一次循环 符合这两个必要条件的结果,来进行输出;