VB编程:斐波纳契(Fibonacci)数列的第一项是1,第二项是1,以后各项都是前两项的和,试用递归算法和非递归算法各编写一个程序,求斐波纳契列前N项和第N项的值。

[1]非递归算法。
Sub Fibonacci(n As Integer)
    f1 = 1
    f2 = 1
    For i = 1 To n
        Print f1, f2,
        If i Mod 2 = 0 Then
            Print
        End If
        f1 = f1 + f2
        f2 = f2 + f1
    Next i
End Sub

Private Sub Form_Click()

    Fibonacci (20)

End Sub

运行此VB源码后,点击窗体,结果情况如下图所示:


[2]递归算法
首先编写递归算法的过程:
Private Static Function fib(ByVal k As Integer)
    If k <= 2 Then
        fib = 1
        Exit Function
    Else
        fib = fib(k - 1) + fib(k - 2)
    End If
End Function

然后在窗体建立两个按钮。编写代码如下:
Private Sub Command1_Click()
    Print
    k = InputBox("", "将输出斐波纳数列的前几项", "7")
    k = CInt(k)
    Print "数列的前"; k; "项是:"
    For i = 1 To k
        d = fib(i)
        Print d,
        If i Mod 4 = 0 Then Print
    Next i

End Sub

Private Sub Command2_Click()

    Dim k As Long
    k = InputBox("", "将输出斐波纳数列的第几项", "7")
    k = CInt(k)
    d = fib(k)
    Print
    Print "数列的第"; k; "项是:"; "f(" & k & ")=" & d
End Sub

Private Sub Form_Load()
    Command1.Caption = "输出前N项"
    Command2.Caption = "输出第N项"
End Sub

运行此VB源码后,分别点击两个按钮,输入数据,结果情况如下图所示:


visual basic 程序设计教程第四版答案 刘炳文 编著

来源:visual basic程序设计教程第四版答案(刘炳文)

本文链接:http://www.wb98.com/vb1/post/vb_9.6.html

本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

扫我手机登录

赞助商链接