天天看点

用程序解逻辑推理题

请回答下面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。

基本思路:

穷举法,把所有答案找出,逐个检验

java实现

public class TenQusetion {
    static char[]answer = new char[];
    static{
        answer[]='a';answer[]='a';answer[]='a';answer[]='a';answer[]='a';
        answer[]='a';answer[]='a';answer[]='a';answer[]='a';answer[]='a';
    }

    public static void main(String[] args) {
        while(nextAnswer()){
            if(check()){
//              System.out.println(answer);
                OutArray.outArray(answer);//这个函数是用来输出的,写在另一个文件里面,就不贴出来了
            }
        }
    }

    static boolean nextAnswer(){
        addNum();
        if(     answer[]=='e' &&   answer[]=='e' &&   answer[]=='e' &&
                answer[]=='e' &&   answer[]=='e' &&   answer[]=='e' &&
                answer[]=='e' &&   answer[]=='e' &&   answer[]=='e' &&
                answer[]=='e' 
                ){
            return false;
        }else{
            return true;
        }
    }

    private static void addNum(int i){
        if(i>=){
            answer[i]++;
            if(answer[i]>'e'){
                answer[i] = 'a';
                addNum(i-);
            }
        }
    }

    static boolean check(){
        //1.
        int i1=;
        while(i1< && answer[i1++] != 'b'){}
        if(     (i1==+ && answer[]=='a')||
                (i1==+ && answer[]=='b')|| 
                (i1==+ && answer[]=='c')|| 
                (i1==+ && answer[]=='d')||
                (i1==+ && answer[]=='e')){
            }
        else {
            return false;
        }

        //2.
        int i2,temp2=,save2=-;
        for(i2=;i2<;i2++){
            if(answer[i2] == answer[i2+]){
                temp2++;
                save2 = i2;
            }
        }
        if(temp2!=){
            return false;
        }else if(   (save2== && answer[]=='a')||
                    (save2== && answer[]=='b')|| 
                    (save2== && answer[]=='c')|| 
                    (save2== && answer[]=='d')||
                    (save2== && answer[]=='e')){}
        else{
            return false;
        }

        //3.
        if(     (answer[]==answer[]) && answer[]=='a'){}
        else if((answer[]==answer[]) && answer[]=='b'){}
        else if((answer[]==answer[]) && answer[]=='c'){}
        else if((answer[]==answer[]) && answer[]=='d'){} 
        else if((answer[]==answer[]) && answer[]=='e'){}
        else{
            return false;
        }

        //4.
        int count4=;
        for(char x:answer){
            if(x == 'a') count4++;
        }
        if( (count4==&& answer[]=='a')||
            (count4==&& answer[]=='b')||
            (count4==&& answer[]=='c')||
            (count4==&& answer[]=='d')||
            (count4==&& answer[]=='e')){}
        else{
            return false;
        }

        //5.
        if(     (answer[]==answer[]) && answer[]=='a'){}
        else if((answer[]==answer[]) && answer[]=='b'){}
        else if((answer[]==answer[]) && answer[]=='c'){}
        else if((answer[]==answer[]) && answer[]=='d'){} 
        else if((answer[]==answer[]) && answer[]=='e'){}
        else{
            return false;
        }

        //6.
        int countA6=,countB6=,countC6=,countD6=,countE6=;
        for(char x:answer){
            if(x == 'a') countA6++;
            else if(x=='b')countB6++;
            else if(x=='c')countC6++;
            else if(x=='d')countD6++;
            else if(x=='e')countE6++;
        }
        if(countA6==countB6){
            if(answer[]!='a') return false; 
        }else if(countA6==countC6){
            if(answer[]!='b') return false; 
        }else if(countA6==countD6){
            if(answer[]!='c') return false; 
        }else if(countA6==countE6){
            if(answer[]!='d') return false; 
        }else{
            if(answer[]!='e') return false;
        }

        //7.
        int i7 = Math.abs(answer[]-answer[]);
        if( (i7== && answer[]=='a')||
            (i7== && answer[]=='b')||
            (i7== && answer[]=='c')||
            (i7== && answer[]=='d')||
            (i7== && answer[]=='e')){}
        else{
            return false;
        }

        //8.
        int count8=;
        for(char x:answer){
            if(x=='a' || x=='e') count8++;
        }
        if( (count8==&& answer[]=='a')||
            (count8==&& answer[]=='b')||
            (count8==&& answer[]=='c')||
            (count8==&& answer[]=='d')||
            (count8==&& answer[]=='e')){}
        else{
            return false;
        }

        //9.
        int count9 = -count8;
        if((count9== || count9 ==) && answer[]=='e'){}
        else if((count9== || count9==)&& answer[]=='d'){}
        else if((count9== || count9== || count9==) && answer[]=='c'){}
        else if((count9== || count9== || count9==) && answer[]=='b'){}
        else if((count9== || count9== || count9== || 
                count9== || count9==)&&answer[]=='a'){}
        else{
            return false;
        }

        return true;
    }
}
           

C语言实现

#include <stdio.h>
int check();
int nextAnswer();
void addNum();
void outArray();

char answer[] = {'a','a','a','a','a',
                    'a','a','a','a','a'};
const int TRUE = ;
const int FALSE = ;

void main(){

    while(nextAnswer()){
        if(check()){
//              System.out.println(answer);
            outArray();
        }
    }
}

void outArray(){
    int i=;
    while(i<)
        printf("%c,",answer[i++]);
    printf("\n");
}

int nextAnswer(){
    addNum();
        if(     answer[]=='e' &&   answer[]=='e' &&   answer[]=='e' &&
                answer[]=='e' &&   answer[]=='e' &&   answer[]=='e' &&
                answer[]=='e' &&   answer[]=='e' &&   answer[]=='e' &&
                answer[]=='e' 
                ){
            return FALSE;
        }else{
            return TRUE;
        }
}

void addNum(int i){
    if(i>=){
        answer[i]++;
        if(answer[i]>'e'){
            answer[i] = 'a';
            addNum(i-);
        }
    }
}

int check(){
    //1.
        int i1=;
        while(i1< && answer[i1++] != 'b'){}
        if(     (i1==+ && answer[]=='a')||
                (i1==+ && answer[]=='b')|| 
                (i1==+ && answer[]=='c')|| 
                (i1==+ && answer[]=='d')||
                (i1==+ && answer[]=='e')){
            }
        else {
            return FALSE;
        }

        //2.
        int i2,temp2=,save2=-;
        for(i2=;i2<;i2++){
            if(answer[i2] == answer[i2+]){
                temp2++;
                save2 = i2;
            }
        }
        if(temp2!=){
            return FALSE;
        }else if(   (save2== && answer[]=='a')||
                    (save2== && answer[]=='b')|| 
                    (save2== && answer[]=='c')|| 
                    (save2== && answer[]=='d')||
                    (save2== && answer[]=='e')){}
        else{
            return FALSE;
        }

        //3.
        if(     (answer[]==answer[]) && answer[]=='a'){}
        else if((answer[]==answer[]) && answer[]=='b'){}
        else if((answer[]==answer[]) && answer[]=='c'){}
        else if((answer[]==answer[]) && answer[]=='d'){} 
        else if((answer[]==answer[]) && answer[]=='e'){}
        else{
            return FALSE;
        }

        //4.
        int count4=;
        int i4;
        for(i4=;i4<;i4++){
            if(answer[i4] == 'a') count4++;
        }
        if( (count4==&& answer[]=='a')||
            (count4==&& answer[]=='b')||
            (count4==&& answer[]=='c')||
            (count4==&& answer[]=='d')||
            (count4==&& answer[]=='e')){}
        else{
            return FALSE;
        }

        //5.
        if(     (answer[]==answer[]) && answer[]=='a'){}
        else if((answer[]==answer[]) && answer[]=='b'){}
        else if((answer[]==answer[]) && answer[]=='c'){}
        else if((answer[]==answer[]) && answer[]=='d'){} 
        else if((answer[]==answer[]) && answer[]=='e'){}
        else{
            return FALSE;
        }

        //6.
        int countA6=,countB6=,countC6=,countD6=,countE6=;
        int i6;
        for(i6=;i6<;i6++){
            if(answer[i6] == 'a') countA6++;
            else if(answer[i6]=='b')countB6++;
            else if(answer[i6]=='c')countC6++;
            else if(answer[i6]=='d')countD6++;
            else if(answer[i6]=='e')countE6++;
        }
        if(countA6==countB6){
            if(answer[]!='a') return FALSE; 
        }else if(countA6==countC6){
            if(answer[]!='b') return FALSE; 
        }else if(countA6==countD6){
            if(answer[]!='c') return FALSE; 
        }else if(countA6==countE6){
            if(answer[]!='d') return FALSE; 
        }else{
            if(answer[]!='e') return FALSE;
        }

        //7.
        int i7 = answer[]-answer[]<? answer[]-answer[]:answer[]-answer[];
        if( (i7== && answer[]=='a')||
            (i7== && answer[]=='b')||
            (i7== && answer[]=='c')||
            (i7== && answer[]=='d')||
            (i7== && answer[]=='e')){}
        else{
            return FALSE;
        }

        //8.
        int count8=;
        int i8;
        for(i8=;i8<;i8++){
            if(answer[i8]=='a' || answer[i8]=='e') count8++;
        }
        if( (count8==&& answer[]=='a')||
            (count8==&& answer[]=='b')||
            (count8==&& answer[]=='c')||
            (count8==&& answer[]=='d')||
            (count8==&& answer[]=='e')){}
        else{
            return FALSE;
        }

        //9.
        int count9 = -count8;
        if((count9== || count9 ==) && answer[]=='e'){}
        else if((count9== || count9==)&& answer[]=='d'){}
        else if((count9== || count9== || count9==) && answer[]=='c'){}
        else if((count9== || count9== || count9==) && answer[]=='b'){}
        else if((count9== || count9== || count9== || 
                count9== || count9==)&&answer[]=='a'){}
        else{
            return FALSE;
        }

        return TRUE;
    }