你的位置:首页 > Java教程

[Java教程]java编码 100匹马 100块瓦


我给分为了两块  一个专门写代码    一个专门输出  看结果  用到太多的 if  

还有一个简单的 没有用到太多的 if 判断

没有写注释  知识点都在我发的那些博客里面  如果还是有不懂的  可留言  补上注释

代码类 :  if 判断的

/**
 *    问:有100匹马 有100片瓦,
 *          大马能托3片瓦,中马能托2片瓦,三只小马能托一片瓦,正好这100匹马,把这100片瓦拉完.
 *                  问有多少匹大马,多少匹中马,多少匹小马?
 */
public class Dai_Ma{
    public static void m1(){
ZhongZhi:   for(int d=1; d <100 ; ++d){  //我这里代表大马
            for(int z=1; z <100 ; ++z){  //我这里代表中马
                for (double x=1; x < 100 ; ++x ){  // 我这里代表小马
                    if (d + z + x == 100 &&  3*d + 2*z + x/3 == 100) {
                        System.out.println( "第一种答案 :  " );
                        System.out.print("大马为 : "+ d + "  匹 "  );
                        System.out.print( "     中马为 : " + z + "  匹  " );
                        System.out.println( "     小马为 : " + x + "  匹   " );
                        break ZhongZhi;
                    }
                }
            }
            
        }
    }
    public static void m2(){
ZhongZhi:   for(int d=1; d <100 ; ++d){  //我这里代表大马
            for(int z=1; z <100 ; ++z){  //我这里代表中马
                for (double x=1; x < 100 ; ++x ){  // 我这里代表小马
                    if (d + z + x == 100 &&  3*d + 2*z + x/3 == 100) {
                        if (d != 5.0) {
                        System.out.println( "第二种答案 :  " );
                        System.out.print("大马为 : "+ d + "  匹 "  );
                        System.out.print( "     中马为 : " + z + "  匹  " );
                        System.out.println( "     小马为 : " + x + "  匹   " );
                        break ZhongZhi;
                        }
                    }
                }
            }
            
        }
    }
    public static void m3(){
ZhongZhi:   for(int d=1; d <100 ; ++d){  //我这里代表大马
            for(int z=1; z <100 ; ++z){  //我这里代表中马
                for (double x=1; x < 100 ; ++x ){  // 我这里代表小马
                    if (d + z + x == 100 &&  3*d + 2*z + x/3 == 100) {
                        if (d != 5) {
                            if (d != 10) {
                            System.out.println( "第三种答案 :  " );
                            System.out.print("大马为 : "+ d + "  匹 "  );
                            System.out.print( "     中马为 : " + z + "  匹  " );
                            System.out.println( "     小马为 : " + x + "  匹   " );
                            break ZhongZhi;    
                            }
                        }
                       
                    }
                }
            }
            
        }
    }
    public static void m4(){
ZhongZhi:   for(int d=1; d <100 ; ++d){  //我这里代表大马
            for(int z=1; z <100 ; ++z){  //我这里代表中马
                for (double x=1; x < 100 ; ++x ){  // 我这里代表小马
                    if (d + z + x == 100 &&  3*d + 2*z + x/3 == 100) {
                        if (d != 5) {
                            if (d != 10) {
                                if (d != 15) {
                                System.out.println( "第四种答案 :  " );
                                System.out.print("大马为 : "+ d + "  匹 "  );
                                System.out.print( "     中马为 : " + z + "  匹  " );
                                System.out.println( "     小马为 : " + x + "  匹   " );
                                break ZhongZhi;    
                                }
                            }
                       
                        }
                       
                    }
                }
            }
            
        }
    }
    public static void m5(){
ZhongZhi:   for(int d=1; d <100 ; ++d){  //我这里代表大马
            for(int z=1; z <100 ; ++z){  //我这里代表中马
                for (double x=1; x < 100 ; ++x ){  // 我这里代表小马
                    if (d + z + x == 100 &&  3*d + 2*z + x/3 == 100) {
                        if (d != 5) {
                            if (d != 10) {
                                if (d != 15) {
                                    if (d != 20) {
                                    System.out.println( "第五种答案 :  " );
                                    System.out.print("大马为 : "+ d + "  匹 "  );
                                    System.out.print( "     中马为 : " + z + "  匹  " );
                                    System.out.println( "     小马为 : " + x + "  匹   " );
                                    break ZhongZhi;   
                                    }else{
                                    System.out.println("没有答案了 就四种"  );
                                    }
                                    
                                }
                            }
                       
                        }
                       
                    }
                }
            }
            
        }
    }
}

查看结果类 :

/**
 *    问:有100匹马 有100片瓦,
 *          大马能托3片瓦,中马能托2片瓦,三只小马能托一片瓦,正好这100匹马,把这100片瓦拉完.
 *                  问有多少匹大马,多少匹中马,多少匹小马?
 */
public class Jie_Guo{
    public static void main(String[] args){
        Dai_Ma.m1();
        Dai_Ma.m2();
        Dai_Ma.m3();
        Dai_Ma.m4();
        Dai_Ma.m5();
    }
}

 简单的  :

public class Jian_Dan{
       static int c = 0;//静态变量
    public static void main(String[] args){
        m1();//调用m1方法
    }
    public static void m1(){//声明静态方法
        for(int d=1; d <100 ; ++d){//这里表示大马
            for(int z=1; z <100 ; ++z){//这里表示中马
                for(double x=1; x <100 ; ++x){//这里表示小马
                    if (d + z + x == 100  && 3*d + 2*z + x/3 == 100 ) { //判断 为真 就执行一下语句
                        c += 1;//进来一次 都和c相加 在赋值给c
                    System.out.println( "第 " + c + "种答案 : " );//c进来几次 就证明有几次正确答案
                    System.out.println("大马有 :"+d +"  中马有 : "+z + "  小马有 : " + x );
                    }
                }
            }
            
        }
    }
}