试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:困难

浙江省丽水、湖州、衢州三地市2021届高三下学期信息技术4月教学质量检测

求解“幻圆”问题。三个圆相互重叠,形成七个区域,编号为①、②、③、④、⑤、⑥、⑦,如图a所示。将数字1~7填入每个区域中,实现所有数字仅用一次且每个圆内的数字之和相等,如图b所示,圆内数字的和为1 + 4 + 6 + 7 = 2 + 4 + 5 + 7 = 2 + 3 + 6 + 7,求解区域①~⑦中可以填入符合条件数字的所有方案。

求解思路:在七个区域①、②、③、④、⑤、⑥、⑦上枚举七个数字1、2、3、4、5、6、7的所有排列来进行验证。程序运行界面如图c所示。

图c

请回答下列问题:

(1)、根据题意及程序代码,在区域①~⑦中按顺序分别填入7,4,2,1,3,6,5,则该排列(选填:能/不能)构成“幻圆”。
(2)、请在划线处填入合适的代码。

Dim a(1 To 7) As Integer  'a(1)~a(7)依次存储区域①~⑦的值

Private Sub Command1_Click()

    Dim i As Integer, n As Integer

    Dim y1 As Integer, y2 As Integer, y3 As Integer

    For i = 1 To 7

        a(i) = i

    Next i

    n = 0

    Do While True

        For i = 7 To 2 Step -1

            If a(i) = 8 Then

                a(i) = 1

               

            End If

        Next i

        If a(1) = 8 Then Exit Do

        If check() Then

            y1 = a(1) + a(2) + a(3) + a(4)

            y2 = a(2) + a(4) + a(5) + a(6)

            y3 = a(3) + a(4) + a(6) + a(7)

            If y1 = y2 And  Then

                n = n + 1

                '在列表List1中,按格式输出a数组元素的值,代码略

            End If

        End If

        a(7) = a(7) + 1

    Loop

    Label1.Caption = "解法共计" & Str(n) & "种。"

End Sub

Function check() As Boolean

    Dim i As Integer, n As Integer, f(1 To 8) As Integer

    For i = 1 To 8

        f(i) = 0

    Next i

    For i = 1 To 7

        

    Next i

    n = 0

    For i = 1 To 7

        n = n + f(i)

    Next i

    If n = 7 Then check = True Else check = False

End Function

举一反三
返回首页

试题篮