楼猪用了30分钟推理,有点晕  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.   

    Private Sub Command1_Click()
    t = Timer  '记录开始时间
    Dim a1%, a2%, a3%, a4%, a5%, a6%, a7%, a8%, a9%, a10%
    Dim cc%, i%, t1%, t2%, tc%, t3%, t4%, t5%, t6%, t7% '定义循环变量
    Dim arr(1 To 10) As Integer   '定义答案数组a=1,b=2,c=3,d=4,e=5
    Dim answer() As String
    cc = 0
    For a1 = 1 To 5  '第1题,不为2
      If a1 = 2 Then GoTo line1
      arr(1) = a1
      For a2 = 2 To 5  '第2题,不为1
        arr(2) = a2
        For a3 = 1 To 5  '第3题,不为2
          If a3 = 2 Then GoTo line2
          arr(3) = a3
          For a4 = 2 To 5 '第4题,不为1
             arr(4) = a4
             For a5 = 1 To 5  '第5题
               arr(5) = a5
               For a6 = 1 To 5  '第6题
                 arr(6) = a6
                 For a7 = 1 To 4 '第7题,不为5
                   arr(7) = a7
                   For a8 = 1 To 3  '第8题,不为4,5
                     arr(8) = a8
                     For a9 = 1 To 4 '第9题
                       If a9 = 3 Then GoTo line3  '不为3,5
                       arr(9) = a9
                       For a10 = 1 To 5
                         arr(10) = a10
                         If arr(arr(1) + 1) <> 2 Then GoTo xxx  '题1条件
                         If arr(arr(2) + 1) <> arr(arr(2) + 2) Then GoTo xxx '题2条件
                         Select Case arr(3)
                           Case 1
                             t1 = 1
                           Case 3
                             t1 = 4
                           Case 4
                             t1 = 7
                           Case 5
                             t1 = 6
                          End Select
                          If arr(3) <> arr(t1) Then GoTo xxx  '题3条件1
                          t2 = 0
                          If arr(3) = arr(1) Then t2 = t2 + 1
                          If arr(3) = arr(4) Then t2 = t2 + 1
                          If arr(3) = arr(7) Then t2 = t2 + 1
                          If arr(3) = arr(6) Then t2 = t2 + 1
                          If t2 > 1 Then GoTo xxx  '题3条件2,需满足唯一性
                          t3 = 0
                          For i = 1 To 10
                            If arr(i) = 1 Then t3 = t3 + 1
                          Next i
                          If arr(4) - 1 <> t3 Then GoTo xxx  '题4条件
                          If arr(5) <> arr(11 - arr(5)) Then GoTo xxx  '题5条件1
                          tc = 0
                          For i = 6 To 10
                            If arr(5) = arr(i) Then tc = tc + 1
                          Next i
                          If tc > 1 Then GoTo xxx '题5条件2,需满足唯一性
                          t4 = 0: t5 = 0
                          For i = 1 To 10
                            If arr(i) = 1 Then t4 = t4 + 1
                            If arr(i) = arr(6) + 1 Then t5 = t5 + 1
                          Next i
                          If arr(6) < 5 And t4 = t5 Then GoTo linea  '题6条件
                          If arr(6) = 5 And t4 = 1 Then GoTo linea  '题6条件,注意选5时需考虑1,2,3,4均不满足
                          If arr(6) = 5 And t4 > 5 Then GoTo linea  '题6条件,注意选5时需考虑1,2,3,4均不满足
                          GoTo xxx
    linea:
                          If Abs(arr(7) - arr(8)) <> 5 - arr(7) Then GoTo xxx '题7条件
                          t6 = 0
                          For i = 1 To 10
                            If arr(i) = 5 Then t6 = t6 + 1
                          Next i
                          If t4 + t6 <> arr(8) + 1 Then GoTo xxx '题8条件,简化了题目,排除不可能项
                          Select Case arr(9)
                           Case 1
                             t7 = 7
                           Case 2
                             t7 = 6
                           Case 4
                             t7 = 8
                          End Select
                          If 9 - arr(8) <> t7 Then GoTo xxx  '题9条件
                          cc = cc + 1
                          ReDim Preserve answer(cc)
                          answer(cc) = Chr(arr(1) + 64)
                          For i = 2 To 10
                           answer(cc) = answer(cc) & "," & Chr(arr(i) + 64)
                          Next i
    xxx:
                       Next a10
    line3:
                      Next a9
                    Next a8
                  Next a7
                Next a6
              Next a5
            Next a4
    line2:
          Next a3
        Next a2
    line1:
    Next a1
    answer(0) = "搜索完毕,共找到" & cc & "组解,用时" & Timer - t & "秒"
    MsgBox Join(answer, vbCrLf)
    End Sub
    -------------------返回:
    搜索完毕,共找到1组解,用时0.34375秒
    C,D,E,B,E,E,D,C,B,A
      

  2.   

    上述代码来自EXCELHOME,作者UNARTHURhttp://club.excelhome.net/dispbbs.asp?boardID=102&ID=117603&page=1