计算24点(Java)

来源:互联网 发布:恒生期货软件使用方法 编辑:程序博客网 时间:2024/06/10 00:26
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+"种方法");}}

1 0
原创粉丝点击