import java.util.Arrays;
import java.util.Scanner;
public class er_shi_si_dian {
//判断结果是否是24,最重要的算法部分
static boolean flag = false;
static int []arr = new int[4];
static int count = 0;
public static void Check(int n){
if(n == 1){
if(arr[0] == 24){
flag = true;
count++;
}
}
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
int a = arr[i];
int b = arr[j];
arr[j] = arr[n-1];
arr[i] = (a + b); Check(n-1);
arr[i] = (a - b); Check(n-1);
arr[i] = (b - a); Check(n-1);
arr[i] = (a * b); Check(n-1);
if(b != 0) { arr[i] = (a / b); Check(n-1);}
if(a != 0) { arr[i] = (b / a); Check(n-1);}
arr[i] = a;
arr[j] = b;
}
}
}
public static void main(String[] args) throws InterruptedException{
Scanner in = new Scanner(System.in);
for (int i = 0; i < 4; i++) {
int m = in.nextInt();
arr[i] = m;
}
Check(arr.length);
if(flag == true){
System.out.println("yes");
}
else{
System.out.println("no");
}
//这种计算有多少种方法应该是考虑了所有的顺序。
System.out.println("共有"+count+"种方法");
}
}
计算24点(Java)
最新推荐文章于 2024-08-13 02:23:13 发布