zoukankan      html  css  js  c++  java
  • 逻辑判断问题(java版)



    /**
    猜测产品质量评奖 

    【问题】5家工厂的产品在一次评比中分获1,2,3,4,5,在公布结果前,已知E
            厂产品肯定不是第二、三名,五厂代表猜测评比结果,
              A厂的代表说:E厂一定能获得第一名。
              B厂的代表说:我厂的产品可能获第二名。
              C厂的代表说:A厂的产品质量最次。
              D厂的代表说:C厂的产品不是最好的。
              E厂的代表说:D厂的产品会获得第一名。

            公布结果后,证明只有产品获第一名和第二名的两个厂的代表猜对了。
            求5个厂产品各获第几名。

    【答案】    A  B   C   D   E
              5  2   1   3   4  
      
             
     谁获冠军? 

    【问题】甲乙丙丁戊五个人在运动会上分获百米、二百米、跳高、跳远和铅球冠军,有
            四个人猜测比赛结果:
              A说:乙获铅球冠军,丁获跳高冠军。
              B说:甲获百米冠军,戊获跳远冠军。
              C说:丙获跳远冠军,丁获二百米冠军。
              D说:乙获跳高冠军,戊获铅球冠军。
            其中每个人都只说对一句,说错一句。求五人各获哪项冠军。
    【算法】用1,2,3,4,5分别代表百米、二百米、跳高、跳远和铅球5个项目,用a,b,c,d,e
            分别代表五人。如b=3 表示乙获跳高冠军。用多重循环穷举出来。
    【答案】  甲  乙  丙  丁  戊
            1  2  4  3  5
             
     
      谁是小偷? 
      
    【问题】有A、B、C、D四名偷窃嫌疑犯,其中一人是小偷,审问中,
    A说:“我不是小偷”,
    B说:“C是小偷”,
    C说:“小偷肯定是D”,
    D说:“C在冤枉人”,
    有三人说真话,一人说假话,问到底谁是小偷?

    【答案】 C

     
    */



    public class LogicProblem {
        
        
    int a,b,c,d,e;
        
        
    public LogicProblem()
        
    {
            WhoWillWin();
            WhoIsChampion();
            WhoIsThief();
        }

        
        
    public void WhoWillWin()
        
    {
            
    int truelogic;
            
    for(a=1;a<=5;a++)
                
    for(b=1;b<=5;b++)
                    
    for(c=1;c<=5;c++)
                        
    for(d=1;d<=5;d++)
                        
    {
                            truelogic
    =0;
                            e
    =15-a-b-c-d;
                            
    if((e!=2&&e!=3)&&(a*b*c*d*e==120))
                            
    {
                                    
    //所有可能的条件罗列出来,只有两个正确
                                    if(e==1)
                                        truelogic
    ++;
                                    
    if(b==2)
                                        truelogic
    ++;
                                    
    if(a==5)
                                        truelogic
    ++;
                                    
    if(c!=1)
                                        truelogic
    ++;
                                    
    if(d==1)
                                        truelogic
    ++;
                                    
    if(truelogic==2)
                                    
    {
                                       
    //进一步罗列成立条件,只有两个是正确的
                                       if((e==1)&&((a<=2)))
                                           truelogic
    ++;
                                       
    if(b==2)
                                           truelogic
    ++;
                                       
    if((a==5)&&((c<=2)))
                                           truelogic
    ++;
                                       
    if((c!=1)&&((d<=2)))
                                           truelogic
    ++;
                                       
    if((d==1)&&((e==2)))
                                           truelogic
    ++;
                                       
    if(truelogic==4)
                                          System.out.println(
    "WhoWillWin--a:"+a+" b:"+b+" c:"+c+" d:"+d+" e:"+e);
                                    }

                            }

                        }

        }


        
    public void WhoIsChampion()
        
    {
            
    for(a=1;a<=5;a++)
                
    for(b=1;b<=5;b++)
                    
    for(c=1;c<=5;c++)
                        
    for(d=1;d<=5;d++)
                        
    {
                                e
    =15-a-b-c-d;
                                
    if((a*b*c*d*e==120)&&((b==5)||(d==3))&&((a==1)||(e==4))&&((c==4)||(d==2))&&((b==3)||(e==5)))
                                  System.out.println(
    "WhoIsChampion--a:"+a+" b:"+b+" c:"+c+" d:"+d+" e:"+e);
                        }

        }


        
    public void WhoIsThief()
        
    {
            
    int truelogic;
            
    for(a=1;a<4;a++)
            
    {
                    truelogic
    =0;
                    
    if(a!=1)
                      truelogic
    ++;
                    
    if(a==3)
                      truelogic
    ++;
                    
    if(a==4)
                      truelogic
    ++;
                    
    if(a!=4)
                      truelogic
    ++;
                    
    if(truelogic==3)
                    
    {
                         System.out.println(
    "WhoIsThief--a:"+a);
                    }

            }

        }

        
        
    public static void main(String[] args)
        
    {
            
    new LogicProblem();
        }


    }

  • 相关阅读:
    Nginx rewrite模块深入浅出详解
    一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS
    nginx: [emerg] getpwnam(“www”) failed错误
    mysql5.7 启动报发生系统错误2
    obv15 实例6:如果K线柱过多,ZIG将发生变动,导致明显的OBV15指标被隐藏!
    obv15 案例4,待日后分析
    稳定
    教你识别指标骗局:以某家捕捞季节和主力追踪为例讲解
    C++ 语句
    C++ 表达式
  • 原文地址:https://www.cnblogs.com/bluespot/p/875660.html
Copyright © 2011-2022 走看看