zoukankan      html  css  js  c++  java
  • java实现24点游戏代码

    import java.util.Arrays;
    import java.util.Scanner;

    public class Test07 {
        public static void main(String[] args) {

            Scanner scn = new Scanner(System.in);

            int shu[] = new int[4];
            for (int i = 0; i < 4; i++) {
                shu[i] = scn.nextInt();

            }

            // int shu[] = { 5, 9, 9, 4 };

            char op[] = { '+', '-', '*', '/' };

            A : for (int i = 0; i < 4; i++) {

                for (int n1 = 0; n1 < op.length; n1++) {

                    for (int j = 0; j < 4; j++) {

                        for (int n2 = 0; n2 < op.length; n2++) {

                            for (int k = 0; k < 4; k++) {

                                for (int n3 = 0; n3 < op.length; n3++) {

                                    for (int m = 0; m < 4; m++) {

                                        // 选的这4个数不能重复
                                        
                                        if (isAllTheOrgiNum(shu[i], shu[j], shu[k], shu[m], shu)) {
                                            double temp = 0;
                                            switch (op[n1]) {
                                            case '+':
                                                temp = shu[i] + shu[j];
                                                break;
                                            case '-':
                                                temp = shu[i] - shu[j];
                                                break;
                                            case '*':
                                                temp = shu[i] * shu[j];
                                                break;
                                            case '/':
                                                temp = (double) shu[i] / shu[j];
                                                break;
                                            }

                                            switch (op[n2]) {
                                            case '+':
                                                temp = temp + shu[k];
                                                break;
                                            case '-':
                                                temp = temp - shu[k];
                                                break;
                                            case '*':
                                                temp = temp * shu[k];
                                                break;
                                            case '/':
                                                temp = (double) temp / shu[k];
                                                break;
                                            }

                                            switch (op[n3]) {
                                            case '+':
                                                temp = temp + shu[m];
                                                break;
                                            case '-':
                                                temp = temp - shu[m];
                                                break;
                                            case '*':
                                                temp = temp * shu[m];
                                                break;
                                            case '/':
                                                temp = (double) temp / shu[m];
                                                break;
                                            }

                                            if (temp == 24) {
                                                System.out.println("(" + "(" + shu[i] + " " + op[n1] + " " + shu[j] + ")"
                                                        + " " + op[n2] + " " + shu[k] + ")" + " " + op[n3] + " " + shu[m]);
                                                break A;
                                            }
                                        }

                                    }
                                }
                            }
                        }
                    }
                }
            }

        }

        private static boolean isAllTheOrgiNum(int i, int j, int k, int l, int[] shu) {
            // TODO Auto-generated method stub
            int[] a = { i, j, k, l };
            Arrays.sort(a);
            Arrays.sort(shu);
            if(a[0]==shu[0] && a[1]==shu[1] &&a[2]==shu[2] && a[3]==shu[3]) {
                return true;
            }
            return false;
        }
    }

  • 相关阅读:
    Myeclipse2013 SVN安装方法以及项目上传到svn服务器
    Gson把json串转换成java实体对象
    使用HttpClient向服务器发送restful post请求
    使用HttpURLConnection向服务器发送post和get请求
    http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
    CAS单点登录配置[5]:测试与总结
    CAS单点登录配置[4]:客户端配置
    CAS单点登录配置[3]:服务器端配置
    CAS单点登录配置[2]:证书生成
    【Oracle/Java】向三张表各插入百万数据,共用时18分3秒,平均每张表6分钟
  • 原文地址:https://www.cnblogs.com/zzlback/p/10357514.html
Copyright © 2011-2022 走看看