永发信息网

用java编程 由用户给四个数,判断能否凑出24

答案:1  悬赏:80  手机版
解决时间 2021-01-14 18:24
  • 提问者网友:暮烟疏雨之际
  • 2021-01-14 13:59
用java编程 由用户给四个数,判断能否凑出24
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-01-14 15:33
import java.util.LinkedList;
import java.util.Scanner;

public class Know24 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入四个数");
double x1 = sc.nextDouble();
double x2 = sc.nextDouble();
double x3 = sc.nextDouble();
double x4 = sc.nextDouble();
f24(x1,x2,x3,x4);

}
public static void f24(double x1,double x2,double x3,double x4){
LinkedList L = new LinkedList();
L.add(x1);
L.add(x2);
L.add(x3);
L.add(x4);
double[] a = new double[4];
LinkedList L1 =new LinkedList();
LinkedList L2 =new LinkedList();
LinkedList L3 =new LinkedList();
boolean flag = true;
String[] s = {"+","-","*","/"};
for(int i = 0;i < 4;++i){
a[0] = L.get(i);
L1.clear();
L1.addAll(L);
L.remove(i);
for(int j = 0;j<3;++j){
a[1] = L.get(j);
L2.clear();
L2.addAll(L);
L.remove(j);
for(int k = 0; k <2;++k){
a[2] = L.get(k);
L3.clear();
    L3.addAll(L); 
L.remove(k);
for(int m = 0; m < 1;++m){
a[3] = L.get(m);
for(int n1 = 0;n1 <4;n1++)
for(int n2 = 0;n2 < 4;++n2)
for(int n3 = 0;n3<4;++n3){
double x = 0,y= 0,z = 0;
switch(n1){
case 0:
x = a[0]+a[1];
break;
case 1:
x = a[0]-a[1];
break;
case 2:
x = a[0]*a[1];
break;
case 3:
 try{
   x = a[0]/a[1];}catch(Exception e){
   System.out.println("除数为0");
   }
break;
}
switch(n2){
case 0:
y = x+a[2];
break;
case 1:
y = x-a[2];
break;
case 2:
y = x*a[2];
break;
case 3:
 try{
   y = x/a[2];}catch(Exception e){
   System.out.println("除数为0");
   }
break;
}
switch(n3){
case 0:
z = y+a[3];
break;
case 1:
z = y-a[3];
break;
case 2:
z = y*a[3];
break;
case 3:
 try{
  z = y/a[3];}catch(Exception e){
   System.out.println("除数为0");
   }
break;

if(z==24d){
System.out.println(a[0]+s[n1]+a[1]+s[n2]+a[2]+s[n3]+a[3]+"="+"24");
flag = false;
}
}

}
    L.clear();
    L.addAll(L3);
}
        L.clear();
L.addAll(L2);
}
        L.clear();
L.addAll(L1);
}
if(flag)
System.out.println("凑不出来");

}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯