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 );
}
}
}

}
}
}

 

 

 

 

全部评论
不懂怎么操作的,赶快加群【910011】大家都是散户,一起来交流吧
点赞 回复
分享
发布于 2015-08-13 10:22

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务