Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2053|回复: 1

[已解决]递归过程的运行过程是怎样的?

[复制链接]
发表于 2012-4-7 15:52 | 显示全部楼层 |阅读模式
递归过程的运行过程是怎样的?以下代码是如何进行运算的?谢谢大家!
Function f(n As Integer) As Long
Select Case n
Case 1
f = 1
Case Else
f = n * f(n - 1)
End Select
End Function
最佳答案
2012-4-7 16:29
本帖最后由 happym8888 于 2012-4-7 16:46 编辑

Function f(n As Integer) As Long
Select Case n
Case 1
f = 1
Case Else
f = n * f(n - 1)
End Select
End Function
即为:
f=n*(n-1)*(n-2)*...*1
举例说明:
当n=5时,运行至递归语句f=n*(n-1)时
f(5)=5*f(5-1)=5*f(4)
然后进入递归、计算f(4)
f(4)=4*f(3),接着再算f(3)
f(3)=3*f(2),再算f(2)
f(2)=2*f(1),再算f(1)
当计算f(1)时,因n=1,所以属于Case 1,f(1)=1
f(2)=2*1
f(3)=3*f(2)=3*2*1
f(4)=4*f(3)=4*3*2*1
f(5)=5*4*3*2*1

发表于 2012-4-7 16:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 happym8888 于 2012-4-7 16:46 编辑

Function f(n As Integer) As Long
Select Case n
Case 1
f = 1
Case Else
f = n * f(n - 1)
End Select
End Function
即为:
f=n*(n-1)*(n-2)*...*1
举例说明:
当n=5时,运行至递归语句f=n*(n-1)时
f(5)=5*f(5-1)=5*f(4)
然后进入递归、计算f(4)
f(4)=4*f(3),接着再算f(3)
f(3)=3*f(2),再算f(2)
f(2)=2*f(1),再算f(1)
当计算f(1)时,因n=1,所以属于Case 1,f(1)=1
f(2)=2*1
f(3)=3*f(2)=3*2*1
f(4)=4*f(3)=4*3*2*1
f(5)=5*4*3*2*1

点评

明白,解释的很详细!!  发表于 2012-4-7 17:07
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 07:44 , Processed in 0.186480 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表