运用java求逻辑性相关的题目

public class Question{
    public static void main(String[] args){
        Question.t1();
    }
    /*用程序求解:
    请回答下面10个题目
    1、第一个答案是b的问题是哪一个?
    (a)2; (b)3; (c)4; (d)5; (e)6
    2、唯一的连续两个具有相同答案的问题是:
    (a)2,3; (b)3,4; (c)4,5; (d)5,6; (e)6,7
    3、本问题的答案和哪一个问题的答案相同?
    (a)1; (b)2; (c)4; (d)7; (e)6
    4、答案是a的问题的个数是:
    (a)0; (b)1; (c)2; (d)3; (e)4
    5、本问题答案和哪一个问题的答案相同?
    (a)10; (b)9; (c)8; (d)7; (e)6
    6、答案是a的问题的个数和答案是什么的问题的个数相同?
    (a)b; (b)c; (c)d; (d)e; (e)以上都不是
    7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
    (a)4; (b)3; (c)2; (d)1; (e)0    (注:a和b相差一个字母)
    8、答案是元音字母的问题的个数是:
    (a)2; (b)3; (c)4; (d)5; (e)6    (注:a和e是元音字母)
    9、答案是辅音字母的问题的个数是:
    (a)一个质数; (b)一个阶乘数; (c)一个平方数; (d)一个立方数; (e)5的倍数
    10、本问题的答案是:
    (a)a; (b)b; (c)c; (d)d; (e)e
    */

    private static void t1(){
        //先枚举各个题目的答案的组合的可能性
        for(int a1=1;a1<=5;a1++){
            for(int a2=1;a2<=5;a2++){
                for(int a3=1;a3<=5;a3++){
                    for(int a4=1;a4<=5;a4++){
                        for(int a5=1;a5<=5;a5++){
                            for(int a6=1;a6<=5;a6++){
                                for(int a7=1;a7<=5;a7++){
                                    for(int a8=1;a8<=5;a8++){
                                        for(int a9=1;a9<=5;a9++){
                                            for(int a10=1;a10<=5;a10++){
                                                //按照标记进行过滤
                                                if(timu1(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu2(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu3(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu4(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu5(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu6(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu7(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu8(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
                                                &&timu9(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)){
                                                    System.out.println("a1=="+a1+"\n"+"a2=="+a2+"\n"+"a3=="+a3+"\n"+"a4=="+a4+"\n"+"a5=="+a5+"\n"
                                                    +"a6=="+a6+"\n"+"a7=="+a7+"\n"+"a8=="+a8+"\n"+"a9=="+a9+"\n"+"a10=="+a10);
                                                }

                                            }                                   
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

    }

    private static boolean timu1(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //1、第一个答案是b的问题是哪一个?
      //(a)2; (b)3; (c)4; (d)5; (e)6
      if((a1==1&&a2==2)||(a1==2&&a3==2&&a1!=2&&a2!=2)||(a1==3&&a4==2&&a2!=2&&a3!=2)||(a1==4&&a5==2&&a2!=2&&a3!=2&&a4!=2)
      &&(a1==5&&a6==2&&a2!=2&&a3!=2&&a4!=2&&a5!=2)){
        return true;
      }
      return false;
    }

    private static boolean timu2(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //2、唯一的连续两个具有相同答案的问题是:
      //(a)2,3; (b)3,4; (c)4,5; (d)5,6; (e)6,7
        if((a2==1&&a2==a3&&a1!=a2&&a3!=a4&&a4!=a5&&a5!=a6&&a6!=a7&&a7!=a8&&a8!=a9&&a9!=a10)
        ||(a2==2&&a1!=a2&&a2!=a3&&a3==a4&&a4!=a5&&a5!=a6&&a6!=a7&&a7!=a8&&a8!=a9&&a9!=a10)
        ||(a2==3&&a1!=a2&&a2!=a3&&a3!=a4&&a4==a5&&a5!=a6&&a6!=a7&&a7!=a8&&a8!=a9&&a9!=a10)
        ||(a2==4&&a1!=a2&&a2!=a3&&a3!=a4&&a4!=a5&&a5==a6&&a6!=a7&&a7!=a8&&a8!=a9&&a9!=a10)
        ||(a2==5&&a1!=a2&&a2!=a3&&a3!=a4&&a4!=a5&&a5!=a6&&a6==a7&&a7!=a8&&a8!=a9&&a9!=a10)){
            return true;
        }
        return false;
    }

    private static boolean timu3(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //3、本问题的答案和哪一个问题的答案相同?
      //(a)1; (b)2; (c)4; (d)7; (e)6
      if((a3==1&&a3==a1)||(a3==2&&a3==a2)||(a3==3&&a3==a4)||(a3==4&&a3==a7)||(a3==5&&a3==a6)){
        return true;
      }
      return false;
    }

    private static boolean timu4(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //  4、答案是a的问题的个数是:
      //(a)0; (b)1; (c)2; (d)3; (e)4
        if((a4==1&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==0)
        ||(a4==2&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==1)
        ||(a4==3&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==2)
        ||(a4==4&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==3)
        ||(a4==5&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==4)){
            return true;
        }
        return false;
    }

    private static boolean timu5(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //5、本问题答案和哪一个问题的答案相同?
      //(a)10; (b)9; (c)8; (d)7; (e)6
      if((a5==1&&a5==a10)||(a5==2&&a5==a9)||(a5==3&&a5==a8)||(a5==4&&a5==a7)||(a5==5&&a5==a6)){
        return true;
      }
      return false;
    }

    private static boolean timu6(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //6、答案是a的问题的个数和答案是什么的问题的个数相同?
      //(a)b; (b)c; (c)d; (d)e; (e)以上都不是
      if((a6==1&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
      ||(a6==2&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
      ||(a6==3&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
      ||(a6==4&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
      ||(a6==5&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)!=sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
      &&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)!=sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
      &&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)!=sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
      &&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)!=sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))){
        return true;
      }
        return false;
    }

    private static boolean timu7(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
      //(a)4; (b)3; (c)2; (d)1; (e)0    (注:a和b相差一个字母)
        if((a7==1&&Math.abs(a8-a7)==4)||(a7==2&&Math.abs(a8-a7)==3)||(a7==3&&Math.abs(a8-a7)==2)
        ||(a7==4&&Math.abs(a8-a7)==1)||(a7==5&&Math.abs(a8-a7)==0)){
            return true;
        }
        return false;
    }

    private static boolean timu8(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //8、答案是元音字母的问题的个数是:
      //(a)2; (b)3; (c)4; (d)5; (e)6    (注:a和e是元音字母)
      if((a8==1&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==2)
      ||(a8==2&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==3)
      ||(a8==3&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==4)
      ||(a8==4&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==5)
      ||(a8==5&&sumGeshu(1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(5,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)==6)){
        return true;
      }
        return false;
    }

    private static boolean timu9(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        //9、答案是辅音字母的问题的个数是:
      //(a)一个质数; (b)一个阶乘数; (c)一个平方数; (d)一个立方数; (e)5的倍数
      if((a9==1&&zhiShu(sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)))
      ||(a9==2&&jiechengShu(sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)))
      ||(a9==3&&pingfangShu(sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)))
      ||(a9==4&&lifangShu(sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)))
      ||(a9==5&&wubeiShu(sumGeshu(2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(3,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)+sumGeshu(4,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)))){
        return true;
      }
      return false;
    }




    private static boolean zhiShu(int a){
        if(a==2){
            return true;
        }
        for(int i=2;i<a;i++){
            if(a%i==0){
                return false;
            }
        }
        return true;
    }

    private static boolean jiechengShu(int a){
        int v = 1;
        for(int i=1;i<a;i++){
            v=v*i;
            if(a==v){
                return true;
            }
        }
        return false;
    }

    private static boolean pingfangShu(int a){
        for(int i=0;i<a;i++){
            if(a==(i*i)){
                return true;
            }
        }
        return false;
    }

    private static boolean lifangShu(int a){
        for(int i=0;i<a;i++){
            if(a==(i*i*i)){
                return true;
            }
        }
        return false;
    }

    private static boolean wubeiShu(int a){
        if(a%5==0){
            return true;
        }
        return false;
    }

    private static int sumGeshu(int answer,int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10){
        int sum = 0;
        if(a1==answer){
            sum += 1;
        }
        if(a2==answer){
            sum += 1;
        }
        if(a3==answer){
            sum += 1;
        }
        if(a4==answer){
            sum += 1;
        }
        if(a5==answer){
            sum += 1;
        }
        if(a6==answer){
            sum += 1;
        }
        if(a7==answer){
            sum += 1;
        }
        if(a8==answer){
            sum += 1;
        }
        if(a9==answer){
            sum += 1;
        }
        if(a10==answer){
            sum += 1;
        }
        return sum;
    }

}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值