高难度逻辑分析题之二
下面的这道题是pconline上搜集的,比较有意思,不过如何实现呢?
提供算法就好,欢迎大家探讨~~*----------------------
  面试,千奇百怪的,什么方式都有,什么题目也会出,这不,以下是一则考程序员的逻辑题目,笔者想了好久好久,也想不出一点头绪了,希望有人能将它解决掉吧!请回答下面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。

解决方案 »

  1.   

    我推了半个多钟头,头都大了,才推出来,大家验证一下
    c
    d
    e
    b
    e
    e
    d
    c
    b
    a
      

  2.   

    答案是CDEBEEDCBA。呵呵,我很早以前在CSDN看过这个题目,别人用编程算出来了。觉得很经典,就保存了那个帖子
      

  3.   

    應該是两年前,CSDN改版之前看到的
      

  4.   

    呵呵,那偶这么傻推一阵,岂不是蛮弱智?(偶按第一个是abdec推的,要是abcde走的话就快多了,郁闷)
    1 2 3 4 5 6 7 8 9 10 RESULT
    a b c c a a F
    a b c c b e c b a F
    a b c c c F
    a b c c e e F
    b F
    c d d b e e d c b F
    c d d b e e d e F
    c d e b e e d c b a T
    d a a b d c b F
    d b b d c b F
    d c b b d c b F
    d d b b d c b F
    d e b d d c b F
    e a a b F
    e b b F
    e c d a a b d c b F
    e c d b d e c F
    e c e b F
    e d b b F
    e e b b e c F
      

  5.   

    我感觉我好笨……
    if 1 is b , then first b is 1 , so 1 <> b
    if 2 is a , then 3 is a , then 1 is a , so count(a) >=3, so 2<> a, 3<>a
    if 3 is b , then 2 is b , then 2=3, so 3<>b,2<>b
    if 3 is c , then 4 is c , then 3=4, because 2<>b , so 3 <> c
    because 2<>b, so 1<>a
    because 3<>b, so 1<>bif 8 is b or d, then 7 has not answer. so 8<>b, 8<> dif 8 is a , then 9 is d , then 7 is c , then 5<> a or e(if 5 is a or e ,then 10 or 6 is a or e , then count(vowel)>=3), 5<>b, 5<>c , 5 <> d    8            7      9       5            
    case    c  , then    d      b(6)    a,b,c,d,e       
    case    e  , then    a..e   d(4)    a,d,e        if 2 is c , then 4 <>a , 4 <> c
    if 4 is b , then 1 is c , then 1=2. so 4<>b.
    if 4 is d , then 5 is d , then 7 is d , then because 1,2,3,4,5,7,8,9 <> a ,so count(a) <=3 , so 4 <> d
    if 4 is e , then 5 is e , then 6 is e , then because 1,2,3,4,5,6,8,9 <> a , so count(a) <=3 , so 4 <> e.
    so 2 <> c.if 2 is e , then 1 <> e , then 1 is d , 5 is b , 8 is c , 9 is b ,7 is d , 6 is d , 3 is d , but count(d)>=3, so 2<> eso 2 = d , so 5=6
    so 1 <> d , 1 <> e
    so 1 = c , so 4 = bbecause 2=d, so 3 <> d , so 3 = e
    so 6 = e
    so 5 = ebecause 4 = b , so count(a)=1 
    becuase 6 = e , 
    so count(b)<>1 , count(c) <> 1 , count(d) <> 1 beacuase 1=c,2=d,3=e,4=b,5=e,6=e
    so 7,8,9,10 has a,b,c,d
    so count(vowel) = 4
    so 8 = c
    so 7 = d
    so 9 = b
    so 10 = a