7,785
社区成员




Public Sub Fun()
Dim I As Integer, J As Integer, Min As Integer, Max As Integer, A(10) As Integer, S(4) As Integer
Dim A1 As Integer, A2 As Integer, A3 As Integer, A4 As Integer, A5 As Integer, A6 As Integer, A7 As Integer, A8 As Integer, A9 As Integer, A10 As Integer
Dim SS As String
For A1 = 1 To 4
A(1) = A1
For A2 = 1 To 4
A(2) = A2
For A3 = 1 To 4
A(3) = A3
For A4 = 1 To 4
A(4) = A4
For A5 = 1 To 4
A(5) = A5
For A6 = 1 To 4
A(6) = A6
For A7 = 1 To 4
A(7) = A7
For A8 = 1 To 4
A(8) = A8
For A9 = 1 To 4
A(9) = A9
For A10 = 1 To 4
A(10) = A10
'第二题逻辑
If Abs(A(5) - A(2)) <> 2 Then Exit For
'第三题逻辑
J = 0
If A(3) = 1 And A(3) <> A(6) And A(3) <> A(2) And A(3) <> A(4) Then J = 1
If A(3) = 2 And A(3) <> A(6) And A(6) <> A(2) And A(6) <> A(4) Then J = 1
If A(3) = 3 And A(2) <> A(6) And A(3) <> A(2) And A(2) <> A(4) Then J = 1
If A(3) = 4 And A(4) <> A(6) And A(4) <> A(2) And A(3) <> A(4) Then J = 1
If J = 0 Then Exit For
'第四题逻辑
J = 0
If A(4) = 1 And A(1) = A(5) And A(2) <> A(7) And A(1) <> A(9) And A(6) <> A(10) Then J = 1
If A(4) = 2 And A(1) <> A(5) And A(2) = A(7) And A(1) <> A(9) And A(6) <> A(10) Then J = 1
If A(4) = 3 And A(1) <> A(5) And A(2) <> A(7) And A(1) = A(9) And A(6) <> A(10) Then J = 1
If A(4) = 4 And A(1) <> A(5) And A(2) <> A(7) And A(1) <> A(9) And A(6) = A(10) Then J = 1
If J = 0 Then Exit For
'第五题逻辑
J = 0
If A(5) = 1 And A(8) = 1 Then J = 1
If A(5) = 2 And A(4) = 2 Then J = 1
If A(5) = 3 And A(9) = 3 Then J = 1
If A(5) = 4 And A(7) = 4 Then J = 1
If J = 0 Then Exit For
'第六题逻辑
J = 0
If A(6) = 1 And A(2) = A(8) And A(4) = A(8) Then J = 1
If A(6) = 2 And A(1) = A(8) And A(6) = A(8) Then J = 1
If A(6) = 3 And A(3) = A(8) And A(10) = A(8) Then J = 1
If A(6) = 4 And A(5) = A(8) And A(9) = A(8) Then J = 1
If J = 0 Then Exit For
'第七题逻辑
For I = 1 To 4
S(I) = 0
Next
For I = 1 To 10
S(A(I)) = S(A(I)) + 1
Next
'找出最小数
J = 1
Min = S(1)
For I = 2 To 4
If S(I) < Min Then
Min = S(I)
J = I
End If
Next
If A(7) <> J Then Exit For
'第八题逻辑
J = 0
If Abs(A(7) - A(1)) <> 1 Then J = 1
If Abs(A(5) - A(1)) <> 1 Then J = 1
If Abs(A(2) - A(1)) <> 1 Then J = 1
If Abs(A(10) - A(1)) <> 1 Then J = 1
If J = 0 Then Exit For
'第九题逻辑
J = 0
If A(9) = 1 And ((A(1) = A(6)) Xor (A(6) = A(5))) Then J = 1
If A(9) = 2 And ((A(1) = A(6)) Xor (A(10) = A(5))) Then J = 1
If A(9) = 3 And ((A(1) = A(6)) Xor (A(2) = A(5))) Then J = 1
If A(9) = 4 And ((A(1) = A(6)) Xor (A(9) = A(5))) Then J = 1
If J = 0 Then Exit For
'第十题逻辑
'找出最大数
Max = S(1)
For I = 2 To 4
If S(I) > Max Then Max = S(I)
Next
If (Max - Min = 3 And A(10) = 1) Or (Max - Min = 2 And A(10) = 2) Or (Max - Min = 4 And A(10) = 3) Or (Max - Min = 1 And A(10) = 4) Then
SS = "答案如下:" & vbCrLf
For I = 1 To 10
SS = SS & "第" & CStr(I) & "题 " & Choose(A(I), "A", "B", "C", "D") & vbCrLf
Next
Debug.Print SS
MsgBox SS
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub