各位大佬帮忙看看

「已注销」 2019-06-07 02:13:17
这题听说能用穷举法求解,各位大神帮忙写下代码!
...全文
151 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
eisldkw 2019-06-08
  • 打赏
  • 举报
回复
这是哪个精神病患者给你出的题。
笨狗先飞 2019-06-07
  • 打赏
  • 举报
回复

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

「已注销」 2019-06-07
  • 打赏
  • 举报
回复
或者用其他办法,给我参考参考

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧