VB斐波那契数列

2025-06-22 22:51:48
推荐回答(3个)
回答1:

原来的是很废的写法

Function f(ByVal n As Double) As Double     '定义求第n项值的函数
   If n = 1 Then
       f = 0
   ElseIf n = 2 Then
       f = 1
   Else
       f = f(n - 1) + f(n - 2)
   End If
End Function

改成

Function f(ByVal n As Double) As Double     '定义求第n项值的函数
    dim a(100) as integer
    a(1)=0
    a(2)=1
    for i=3 to n
        a(i)=a(i-1)+a(i-2)
    next
    f=a(n)
End Function

回答2:

Function f(ByVal n As Double) As Double     '定义求第n项值的函数
    Dim num(999)
   If n = 1 Then
       f = 0
   ElseIf n = 2 Then
       f = 1
   Else
    num(1) = 0
    num(2) = 1
    For i = 3 To n
        num(i) = num(i - 1) + num(i - 2)
    Next
        f = num(n)
   End If
End Function

回答3:

Dim n,s,i As Long
n = 0
s = 0
i = 1
Do While n<100000
n=n+s
Debug.Print n
s=i
i=n
Loop