一道高一VB编程题

来源:百度知道 编辑:UC知道 时间:2024/05/10 20:56:52
用VB求:Fabonacci数列前30项的和与积。

Option Explicit
'不用递归,直接求Fabonacci数列的前30项之和、积
Public Function GetFabonacci()
Dim i, P, S As Long
Dim Fab(1 To 30) As Long
Fab(1) = 1: Fab(2) = 1
For i = 3 To 30
Fab(i) = Fab(i - 1) + Fab(i - 2)
Next
P = 1
For i = 1 To 30
S = S + Fab(i)
P = P * Fab(i)
Next
Debug.Print S, P
End Function

'递归方法求Fabonacci数列的第n项值
Public Function GetFabDg(ByVal n As Integer) As Long
Select Case n
Case 1, 2
GetFabDg = 1
Case Else
GetFabDg = GetFabDg(n - 1) + GetFabDg(n - 2)
End Select
End Function

'递归方法求Fabonacci数列前n项的和
Public Function GetFabSum(ByVal n As Integer) As Long
Dim S As Long
Dim i As Integer
For i = 1 To n
S = S + GetFabDg(i)
Next
GetFabSum = S
End Function

'递归方法求Fabonacci数列前n