当前位置: 代码迷 >> J2SE >> 用java循环解答:多种方法解决方法
  详细解决方案

用java循环解答:多种方法解决方法

热度:26   发布时间:2016-04-24 00:40:50.0
用java循环解答:多种方法
在马克思手稿中有一道数学去趣题:一共有30个人,可能包括男人,女人,小孩。他们在一家饭馆吃饭共花了
50先令,其中每个男人花3先令,每个女人花2先令,每个小孩花1先令,请问:男,女,小孩?
定义变量:men:男人;women:女人;kids:小孩

------解决方案--------------------
Java code
public class Test3 {    public static void main(String[] args) {        int men;        int women;        int kids;        for (men=0; men <= 50 / 3; men++) {            for (women=0; women <= 50 / 2; women++) {                for (kids=0; kids <= 50; kids++) {                    if ((3 * men + 2 * women + kids == 50)                            && (men + women + kids == 30)) {                        System.out.println("男人:" + men + ", 女人:" + women                                + ", 小孩:" + kids);                    }                }            }        }    }}
------解决方案--------------------
package test;

public class Test {

public static void main(String[] args) {

int x; // 男人
int y; // 女人
//小孩, 因为 x+y+z = 30 所以 z = 30-x-y
System.out.println("男人\t女人\t小孩(30-x-y)");
for (x = 0; x <= 50/3; x++) { //男人数不会超过50 /3 个
for (y = 0; y <= 50/2; y++) { //女数不会超过50 /2 个
if (3 * x + 2 * y + (30 - y - x) == 50) {
System.out.println(x +"\t" + y + "\t"
+ (30 - x - y));

}
}
}
}
}

------解决方案--------------------
唉,好笨,自己想不出来,只好看别人的了。
------解决方案--------------------
其实women和kids的范围可以再缩小一下
0《men《5/3
0《women《(50-men*3)/2
0《kids《50-men*3-women*2
------解决方案--------------------
这个问题很有趣,刚看到题目我还想写呢!但是1楼已经的非常好了,我就懒得写了。
------解决方案--------------------
public class Test02 {
public static void main(String[] args) {
int men ,women,kids;
for(men =0;men<=10;men++){
for (women =0; women <= 30; women++) {
for (kids =0; kids <= 30; kids++) {
if((men*3+women*2+kids==50) && (men+women+kids==30)){
System.out.println("men有 "+men+" women有"+women+" kids有"+kids);
}
}
}
}
}
}
------解决方案--------------------
731564363
  相关解决方案