试题

试题 试卷

logo

题型:填空题 题类:常考题 难易度:普通

高中信息技术综合库——枚举算法3

哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个质数之和。下列程序的功能即验证哥德巴赫猜想。程序运行时,在文本框Text1中输入一个大于2的偶数,单击“证明”按钮Command1后,在列表框List1中输出所有符合猜想的组合,在标签Label2中输出共有多少个组合。程序运行效果如下图所示。

为实现上述功能程序如下,但加框处的代码有误,请改正。

Private Sub Command1_Click()

    Dim n As Integer

    Dim i As Integer, c As Integer

    n = Val(Text1.Text)

    List1.Clear

    c = 0

    If n Mod 2 = 0 Then

        For        ①

            If    Then            ②

                List1.AddItem n & "=" & i & "+" & n - i

                c = c + 1

            End If

        Next i

        Label2.Caption = "共有" & c & "种组合"

    Else

        Label2.Caption = "请输入一个大于 2 的偶数"

    End If

End Sub

Function is Prime(x As Integer) As Boolean

    Dim i As Integer

    Is Prime = True

    For i = 2 To Int(Sqr(x))

        If x Mod i = 0 Then

            Is Prime = False

            Exit For

        End If

    Next i

End Function

 ② 

举一反三
火柴棒等式。用火柴棒可以摆出0-9的数字,摆放规则如下图所示:

有一种火柴棒游戏,将火柴棒摆成形如“A+B=C”的火柴棒等式。用n根火柴棒摆放数学等式的规则约定如下:

⑴A、B都是不大于1000的正整数,若数值非零,则最高位不能是0;

⑵摆放“+”与“=”各使用两根火柴棒;

⑶A+B=C 与B+A=C视为相同的等式;

⑷n根火柴棒必须全部用上。

小明依据上述规则使用VB编写程序,研究“使用n根火柴棒,可以摆放出哪些不同的等式”,代码如下所示。请回答下列问题。

Dim sz(0 To 9) As Integer     ‘数组元素sz(i)用于存储数字i所使用的火柴棒的数量

Private Sub Form_Load()

    sz(0) = 6 : sz(1) = 2 : sz(2) = 5 : sz(3) = 5 : sz(4) = 4

    sz(5) = 5 : sz(6) = 6 : sz(7) = 3 : sz(8) = 7 : sz(9) = 6

End Sub

‘自定义函数hcs用于求解摆放数字x需要使用的火柴棒数量

Function hcs(ByVal x As Integer) As Integer

    Dim s As Integer, k as integer

    s = 0

    Do While     ①    

        k = x Mod 10

        s=s+sz(k)

        x = x \ 10

    Loop

    hcs = s + sz(x)

End Function

Private Sub Command1_Click()

    Dim n As Integer

    Dim a As Integer, b As Integer, c As Integer

    n = Val(Text1.Text)

    ans = 0

    List1.Clear

    For a = 0 To 999

        For b =    ②     To 999

            c = a + b

            If     ③    Then

                List1.AddItem (Str(a) + "+" + Str(b) + "=" + Str(c))

                ans = ans + 1

            End If

        Next b

    Next a

    List1.AddItem ("共有" + Str(ans) + "种等式")

End Sub

返回首页

试题篮