网红2018刑侦推理题

在群里看到一套推理题,比较适合写代码解决
题目和答案如下:

推理题.jpg

先发执行的结果,答案只有一个:

Count is 4231
Answer is 2313134121

1 2 3 4分别代表A B C D,即B C A C A C D A B A与图中答案一致

代码如下:

package myTest1;

public class MyTest1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //定义10个变量
        int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
        
        int countA,countB,countC,countD;
        int countmax,countmin;
        for(a1 = 1; a1 <5; a1++) //1
            for(a2 = 1; a2 <5; a2++) //2
                for(a3 = 1; a3 <5; a3++) //3
                    for(a4 = 1; a4 <5; a4++) //4
                        for(a5 = 1; a5 <5; a5++) //5
                            for(a6 = 1; a6 <5; a6++) //6
                                for(a7 = 1; a7 <5; a7++) //7
                                    for(a8 = 1; a8 <5; a8++) //8
                                        for(a9 = 1; a9 <5; a9++) //9
                                            for(a10 = 1; a10 <5; a10++){  //10
                                                //Prepare
                                                countA = 0;
                                                countB = 0;
                                                countC = 0;
                                                countD = 0;
                                                countmax = 0;
                                                countmin = 0;
                                                switch(a1){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a2){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a3){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a4){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a5){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a6){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a7){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a8){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a9){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                switch(a10){
                                                case 1: countA++;break;
                                                case 2: countB++;break;
                                                case 3: countC++;break;
                                                case 4: countD++;
                                                }
                                                countmax = countA;
                                                countmin = countA;
                                                
                                                if(countmax < countB) countmax = countB;
                                                if(countmin > countB) countmin = countB;
                                                
                                                if(countmax < countC) countmax = countC;
                                                if(countmin > countC) countmin = countC;
                                                
                                                if(countmax < countD) countmax = countD;
                                                if(countmin > countD) countmin = countD;

                                                //Test one
                                                
                                                //Test two
                                                if(a2 == 1 && a5 == 3 ||  a2 == 2 && a5 == 4 || a2 == 3 && a5 == 1 || a2 == 4 && a5 == 2) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test three
                                                if(a3 == 1 && a3 != a6 && a3 != a2 && a3!= a4 || a3 == 2 && a6 != a3 && a6 != a2 && a6 != a4 || a3 == 3 && a2 != a3 && a2!= a6 && a2!= a4) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test four
                                                if(a4 == 1 && a1 == a5 || a4 == 2 && a2 == a7 || a4 == 3 && a1 == a9 || a4 == 4 && a6 == a10) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test five
                                                if(a5 == 1 && a8 == 1 || a5 == 2 && a4 == 2 || a5 == 3 && a9 == 3 || a5 == 4 && a7 == 4) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test six
                                                if(a6 == 1 && a8 == a2 && a8 == a4 || a6 == 2 && a8 == a1 && a8 == a6 || a6 == 3 && a8 == a3 && a8 == a10 || a6 == 4 && a8 == a5 && a8 == a9) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test seven
                                                if(a7 == 1 && countC != 0 && countC < countA && countC < countB && countC < countD || a7 == 2 && countB != 0 && countB < countA && countB < countC && countB < countD || a7 == 3 && countA != 0 && countA < countB && countA < countC && countA < countD || a7 == 4 && countD != 0 && countD < countA && countD < countB && countD < countC) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test eight
                                                if(a8 == 1 && (a7 + 1) != a1 && (a7 - 1) != a1 || a8 == 2 && (a5 + 1) != a1 && (a5 - 1) != a1 || a8 == 3 && (a2 + 1) != a1 && (a2 -1) != a1 || a8 == 4 && (a10 +1) != a1 && (a10 -1) != a1) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                //Test nine
                                                if(a1 == a6) {
                                                   if(a9 == 1 && a6 != a5 || a9 == 2 && a10 != a5 || a9 == 3 && a2 != a5 || a9 == 4 && a9 != a5) {
                                                       ;
                                                   }    
                                                   else continue;  
                                                }
                                                else {
                                                   if(a9 == 1 && a6 == a5 || a9 == 2 && a10 == a5 || a9 == 3 && a2 == a5 || a9 == 4 && a9 == a5) {
                                                       ;
                                                   }
                                                   else continue;
                                                }
                                                
                                                //Test ten
                                                if(a10 == 1 && (countmax - countmin) == 3 || a10 == 2 && (countmax - countmin) == 2 || a10 == 3 && (countmax - countmin) == 4 || a10 == 4 && (countmax - countmin) == 1) {
                                                    ;
                                                }
                                                else continue;
                                                
                                                System.out.println("Count is " + countA+countB+countC+countD);
                                                System.out.println("Answer is " + a1+a2+a3+a4+a5+a6+a7+a8+a9+a10);
                                            }
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 12,988评论 0 13
  • 选择题部分 1.(),只有在发生短路事故时或者在负荷电流较大时,变流器中才会有足够的二次电流作为继电保护跳闸之用。...
    skystarwuwei阅读 14,683评论 0 7
  • 选择题部分 1.()部门负责日常监督检查工作,安全巡视的同时进行消防检查,推动消防安全制度的贯彻落实。 A: 消防...
    skystarwuwei阅读 15,800评论 0 3
  • 数据结构与算法 1.算法的有穷性是指( )。答案:A A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是...
    织梦学生阅读 8,886评论 1 15
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,845评论 0 2