对于递归,目前我可以写出那个什么数列:
Function f(n)
If n <= 1 Then
f = n
Else
f = f(n - 1) + f(n - 2)
End If
End Function
但是,看到彭版的递归代码却怎么也看不懂了:
Sub peng()
ReDim arr(1 To 65536, 1 To 1)
Call xi("", 3, 2, 0, jj, arr)
Range(Cells(1, 1), Cells(jj, 1)) = arr
End Sub
Sub xi(a, x, y, z, jj, arr)
If z > y Then Exit Sub
If Len(a) - z > x Then Exit Sub
If Len(a) = x + y Then
jj = jj + 1
arr(jj, 1) = a
End If
Call xi(a & "o", x, y, z, jj, arr)
Call xi(a & "1", x, y, z + 1, jj, arr)
End Sub
求各位达人帮助详细解释一下这代码的思想方法。
注:是求详细的思想方法,不是解释成如“jj=jj+1就是变量jj累加1”这样的翻译。
要是再能将此思想方法转为非递归形式(如果可以转的话)那就更好了。谢谢各位达人!
为了学习哈{:soso_e183:}
|