编写java循环程序,有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮一担,问有大、中

2024-11-14 13:44:01
推荐回答(5个)
回答1:

设大、中、小马数量分别为x、y、z,那么:

3x+2y+z/2=100
x+y+z=100

简单置换下,可以得到5x+3y=100,马数不可能出现负数,也不为0,所以x<=19(19=(100-3)/5)

int x=1,y=0,z=0,tmp=0;// 预定义几个变量。如果不是为了代码易读,tmp可省略 
for (; x < 20; x++) {
  tmp = 100 - 5 * x;
  y = tmp / 3;
  z = 100 - x - y;
  if (z % 2 != 0) continue;// 小马必须是两匹在一起,所以z需是偶数
  if (6 * x + 4 * y + z != 200) continue;// 检查是否满足第一公式
  System.out.printf("[x,y,z]=%02d,%02d,%02d;6x+4y+2z=%d;x+y+z=%d\r\n"//
      , x, y, z, (6 * x + 4 * y + z), (x + y + z));
}

回答2:

/**
 * 
 * @author IT学习者-螃蟹
 *
 */
public class Horse {

public static void main(String[] args){
for(int big =0;big<100;big++){
for(int midle=0;midle<100;midle++){
for(int small=0;small<100;small=small+2){
if((big*3 + midle*2 + small *1/2 ==100) && (big+midle+small==100)){
System.out.println("大:"+big+";中 :"+midle +"小:"+small);
}
}

}
}
}

}


运行结果:


大:2;中 :30小:68

大:5;中 :25小:70

大:8;中 :20小:72

大:11;中 :15小:74

大:14;中 :10小:76

大:17;中 :5小:78

大:20;中 :0小:80

回答3:

for(int i = 0 ;i < 34 ; i++){
for(int j = 0 ; j <= 50 ; j++){
for(int k = 0 ; k <= 100 ; k++){
if(3 * i + 2 * j + 0.5 * k == 100)

System.out.println("大:"+i+";中 :"+j +"小:"+K);

}

}

}

回答4:

public static void main(String[] args) {
// TODO Auto-generated method stub
int dama = 0 , zhongma = 0;
double xiaoma = 0;
for(dama = 0 ; dama < 100 ; dama++){
for(zhongma = 0 ; zhongma < 100 ; zhongma++){
xiaoma = 100 - dama - zhongma;
if((3 * dama + 2 * zhongma + xiaoma /2) == 100){
System.out.println("大马 = "+dama);
System.out.println("中马 = "+zhongma);
System.out.println("小马 = "+(int)xiaoma);
System.out.println("---------");
}
}
}

}

回答5:

你这问题好多答案的是要列举所有答案吗。