VBA中的递归函数结构

时间:2021-05-21 16:08:39

标签: vba recursion dynamic

我正在尝试编写一个递归函数,以便计算动态数组中值组合的乘积之和。现在我一直试图让它在更简单的情况下工作,但我真的不太明白递归函数应该遵循的结构。在这种情况下,应该有 28 个二因子乘积之和,结果为 1.4

Sub SuPC()
 Dim k As Long
 Dim s As Long
 Dim i As Long
 Dim j As Long

 k = 8
 s = 2

 HSum i, j, s, k
End Sub

Function HSum(i As Long, j As Long, s, k) As Double
 Dim P As Variant
 Dim z() As Double
 Dim Tot As Double
 ReDim z(0 To (k * s) - 1)

 P = Array(1 / 2, 1 / 3, 1 / 4, 1 / 5, 1 / 6, 1 / 7, 1 / 8, 1 / 9)


 If i <= k Then
     HSum i + 1, j, s, k
     If j <= s Then
         HSum i, j + 1, s, k
         If z(i) = 0 Then z(i) = 1
         z(i) = P(j) * z(i)
     End If
     Tot = z(i) + Tot
 End If
 Range("J11") = Tot
End Function

如果 sk 是低固定值,我可以使用 For 循环,但重点是它们是可变的。

0 个答案:

没有答案
相关问题