| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7189 人关注过本帖
标题:vb中如何进行递归调用
只看楼主 加入收藏
x乌鱼
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-7-1
收藏
 问题点数:0 回复次数:8 
vb中如何进行递归调用
我想解决一个N!的问题,但是VB还是很生疏,请达人教一下 如何进行递归调用
搜索更多相关主题的帖子: 递归 
2007-05-19 19:28
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 
dim n as long
dim s as long
s=1
n=inputbox("输入N的值:")
for i=1 to n
s=s*i
next i
print s 's就N!的值
2007-05-19 22:08
x乌鱼
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-7-1
收藏
得分:0 
能教下 VB的递归么?

2007-05-19 23:10
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 

递归是一种算法,不是VB或是哪一种编程语言的…………
所谓递归就是在过程中调用过程本身。一般用递归的代码都能用循环来代替。但递归的代码简洁,比循环更容易看懂。
不过由于递归会不断的堆栈要花费相当大的空间与时间代价。
现就以你说的N!来举例:

Option Explicit

Private Sub Form_Load()
Debug.Print "5!=" & SUM1(5)
End Sub

Private Function SUM1(ByVal NUM As Long) As Long '使用递归计算接一乘
If NUM < 1 Then
Exit Function
ElseIf NUM = 1 Then
SUM1 = 1
Else
SUM1 = NUM * SUM1(NUM - 1)
End If
End Function

[此贴子已经被作者于2007-5-21 22:14:07编辑过]


VB QQ群:47715789
2007-05-20 00:35
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 
用循环就OK了递归多麻烦啊

2007-05-20 16:48
x乌鱼
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-7-1
收藏
得分:0 
感谢 Joforn 和ouzhiguang 其实我想做这递归 是因为我还没搞明白函数的调用` 嘿嘿 感谢啊`


PS:如果 Joforn 在第1个elseif num=0 or num =1 的话,我感觉这程序更完美`

2007-05-21 21:30
星梦缘
Rank: 1
来 自:江西
等 级:新手上路
帖 子:413
专家分:0
注 册:2007-1-16
收藏
得分:0 

show出自己 活力四射!
2007-05-22 09:07
rockschen
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-5-21
收藏
得分:0 
完整的程序还差一个报错,必须为整数。     

2007-05-22 10:03
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
递归效率没循环高啊.

学习需要安静。。海盗要重新来过。。
2007-05-22 20:07
快速回复:vb中如何进行递归调用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011756 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved