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