杨凌会展:一道高一VB编程题

来源:百度文库 编辑:高校问答 时间:2024/05/01 10:19:25
用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项的积
Public Function GetFabPro(ByVal n As Integer) As Double
Dim P As Double
Dim i As Integer
P = 1
For i = 1 To n
P = P * GetFabDg(i)
Next
GetFabPro = P
End Function

C的我会....
就是不知道VB里如何实现递归调用..
需要C的话留个言
前提是你得会VB里的递归调用
我猜也不会太麻烦...