美文网首页
网红2018刑侦推理题

网红2018刑侦推理题

作者: o树林o | 来源:发表于2019-06-05 19:04 被阅读0次

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

推理题.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);
                                            }
    }

}

相关文章

网友评论

      本文标题:网红2018刑侦推理题

      本文链接:https://www.haomeiwen.com/subject/nmysxctx.html