这也叫递归,气的半死了,哈哈哈哈。

dianyancao 2011-02-11 09:06:29
Option Explicit

Dim a As Integer
Dim b As Integer

Private Sub Command1_Click()
a = 1
b = 4
MsgBox stack(b)
End Sub

Private Function stack(stackitem As Integer) As Long
If a = 1 Then
stack = 1
ElseIf stackitem = b Then
stack = b
Exit Function
Else
stack = stackitem
End If
a = a + 1
If a <= b Then stack = stack * stack(a)
End Function
...全文
174 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
貓哥是個傳說 2011-02-12
  • 打赏
  • 举报
回复
俺一直沒弄懂遞歸。。
jiashie 2011-02-12
  • 打赏
  • 举报
回复
混淆代码大赛
杨哥儿 2011-02-12
  • 打赏
  • 举报
回复
递归未用熟!
孤独剑_LPZ 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dianyancao 的回复:]
无聊,发下JM帖。
[/Quote]
wljf
chinaboyzyq 2011-02-12
  • 打赏
  • 举报
回复
king06 2011-02-12
  • 打赏
  • 举报
回复
Private Function stack(stackitem As Integer) As Long
Dim s As Long
If a = 1 Then
s = 1
ElseIf stackitem = b Then
stack = b
Exit Function
Else
s = stackitem
End If
a = a + 1
If a <= b Then stack = s * stack(a)
End Function
lxq19851204 2011-02-12
  • 打赏
  • 举报
回复
dianyancao 2011-02-12
  • 打赏
  • 举报
回复
无聊,发下JM帖。
dianyancao 2011-02-12
  • 打赏
  • 举报
回复
这个才是原版。
Option Explicit

Private Sub Command1_Click()
Dim n%, i%, R&
n = InputBox("")
R = Rsl(n)
MsgBox R
End Sub

Private Function Rsl(Item As Integer) As Double
If Item = 0 Then Rsl = 1 Else Rsl = Item * Rsl(Item - 1)
End Function

threenewbee 2011-02-12
  • 打赏
  • 举报
回复
不知道从什么时候开始阶乘用递归来写了,这纯粹是没事找事。

是不是以后 sum(1 to 100) 之类的也要递归啊。

我觉得让学生明白递归的用途更重要。其实汉诺塔是一个很经典的案例。
dianyancao 2011-02-11
  • 打赏
  • 举报
回复
哈哈,这个写的更糟糕
Option Explicit

Dim a As Integer
Dim b As Integer

Private Sub Command1_Click()
a = 3
b = 4
MsgBox stack(a, b)
End Sub

Private Function stack(startitem As Integer, enditem As Integer) As Long
If a = 0 Or a = 1 Then
stack = 1
ElseIf startitem = b Then
stack = b
Exit Function
Else
stack = startitem
End If
a = a + 1
If a <= b Then stack = stack * stack(a, b)
End Function

zzyong00 2011-02-11
  • 打赏
  • 举报
回复
楼主要表达什么意思?
神马都能聊 2011-02-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dingyanwei 的回复:]
说实话,没看懂,这程序写的。
[/Quote]
好像是从a到b的阶乘,只是限定了a必须等于1
dingyanwei 2011-02-11
  • 打赏
  • 举报
回复
说实话,没看懂,这程序写的。
dbcontrols 2011-02-11
  • 打赏
  • 举报
回复
a = a + 1就叫
神马都能聊 2011-02-11
  • 打赏
  • 举报
回复
把a也写成参数吧,这样就实现从a到b的了,反正都写到这样了

742

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧