Java 计算
用 100 元钱买 100 支笔,其中钢笔 3 元 / 支,圆珠笔 2 元 / 支,铅笔 0.5 元 / 支,问钢笔、圆珠笔和铅笔可以各买多少支 ?
穷举法,用JAVA写了一下,代码很简单
public static void main(String[] args) {
//定义三个变量
int x,y,z;
//钢笔至多买100/3支
for (x=0;x<=100/3;x++){
//圆珠笔至多100/2
for (y=0;y<=100/2;y++){
//铅笔至多买100/0.5 200支 个数步进每次加2 化为 0.5*2=1
for (z=0;z<=100*2;z+=2){
//满足题目关系 输出一次 价钱铅笔的因为*2 还得还回来
if (x+y+z==100 && x*3+y*2+z/2==100){
System.out.println("pen:"+x+", ballpoint:"+y+", pencil:"+z);
}
}
}
}
}
运行
pen | ballpoint | pencil |
---|---|---|
2 | 30 | 68 |
5 | 25 | 70 |
8 | 20 | 72 |
11 | 15 | 74 |
14 | 10 | 76 |
17 | 5 | 78 |
20 | 0 | 80 |
番外
这里说个好玩的,2020-10-16 昨天看朋友圈看到这么一个题
出一道神题考考大家。一百个包子一百个人吃,其中男人一人可以吃十个,女人一人可以吃三个,两个小孩吃一个,
共男人多少个,女人多少个,孩子多少个。
然后我一看不就是我写的这个 只不过参数不一样,哈哈,今天看到消息 索性帮他执行一把,一个main而已
public static void main(String[] args) {
//定义三个变量
int x,y,z;
//男人至多吃100/10支
for (x=0;x<=100/10;x++){
//女人至多100/3
for (y=0;y<=100/3;y++){
//孩子至多买100/0.5 200支 个数步进每次加2 化为 0.5*2=1
for (z=0;z<=100*2;z+=2){
//满足题目关系 输出一次 孩子的因为*2 还得还回来
if (x+y+z==100 && x*10+y*3+z/2==100){
System.out.println("男:"+x+", 女:"+y+", 儿子:"+z);
}
}
}
}
}
男:0, 女:20, 儿子:80
男:5, 女:1, 儿子:94
祝你幸福
送你一首歌《流浪》卢焱
附图:星系Arp 188和蝌蚪的尾巴