电脑报第17期点将台题目的解答

来源:互联网 发布:法语自学软件app 编辑:程序博客网 时间:2024/05/01 01:28
Dim i, j, k As Integer     
Dim a()
Private Sub cmdend_Click()     
    End
End Sub
Private Sub cmdstart_Click()
    a = Array(20, 10, 2, 8, 22, 16, 4, 10, 6, 14, 20, 10)
    k = 0
    Tmr1.Enabled = True
    pic1.Print "初始值:";
    For i = 1 To 10
        pic1.Print a(i);
    Next i
    Print
End Sub
Private Sub Tmr1_Timer()
    k = k + 1
    j = 0
    a(11) = a(1)
    pic1.Print
    For i = 1 To 10
        a(i) = (a(i) + a(i + 1)) / 2
        If a(i) Mod 2 = 1 Then a(i) = a(i) + 1
        pic1.Print Tab(i * 4); a(i);
        If i = 10 Then pic1.Print "(第" & k & "次)";
    Next i
    a(11) = a(1)
    For i = 1 To 10
        If a(i) = a(i + 1) Then j = j + 1
    Next i
    If j = 10 Then
        pic1.Print
        pic1.Print "经过" & k; "次后,10个小孩手中的糖块数一样。"
        pic1.Print "每人手中各有" & a(1) & "块糖。"
        Tmr1.Enabled = False
    End If
    If k > 3000 Then
        Tmr1.Enabled = False
        MsgBox "已分3000次糖果,还没有得到答案,估计算法有误。", vbOKOnly, "提示"
    End If
End Sub 
原创粉丝点击