VB递归算法原理?

[复制链接]
查看11 | 回复1 | 2010-8-11 14:02:54 | 显示全部楼层 |阅读模式
以下是我在网上找的小程序(它结果输出是13)。
请在每句添加注释。它的运行原理。
Private x, y As Integer
Private Sub Form_Click()
Dim a, b As Integer
a = 5
x = 2
y = 3
b= z(a)
Print "第" & 5 & "项是" & b
End Sub
Function z(a As Integer)

If a = 1 Then

z = x

ElseIf a = 2 Then

z= y

Else

z = z(a - 2) + myfunc(a - 1)

End If
End Function
z = z(a - 2) + myfunc(a - 1)这条代码应改为z = z(a - 2) +z(a - 1)

回复

使用道具 举报

千问 | 2010-8-11 14:02:54 | 显示全部楼层
对于函数z(a),当a=1时,即z(1)=x,z(2)=y,在本例中a=5,则z(5)=z(3)+z(4)z(3)=z(1)+z(2)=x+y;z(4)=z(2)+z(3)=y+z(3)=y+x+y所以z(5)=(x+y)+(y+x+y)=2x+3y=13递归调用的原理就是递推,知道函数的参数满足z=x或者z=y为止,也就是知道满足参数等于1或者等于2为止。不知道这样回答能让你理解吗,有问题的话百度Hi我吧,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行