Function factorial(n As Integer) As Double
Dim t As Double
If n = 0 Then t = 1 Else t = n * factorial(n - 1)
factorial = t
End FunctionPrivate Sub Command1_Click() Label3.Caption = factorial(Text1.Text)
End SubPrivate Sub Command2_Click()
Text1.Text = ""
Label3.Caption = ""
End Sub估计大家都见过这个程序啊,上面程序是没有问题的,测试过都正确。
我有一点不明白啊,第三行函数反复调用自己,假如我输入的n=3,在函数调用
过程中,最后执行factorial (0),应该执行哪一条语句。是执行n=0,then t=1?
Dim t As Double
If n = 0 Then t = 1 Else t = n * factorial(n - 1)
factorial = t
End FunctionPrivate Sub Command1_Click() Label3.Caption = factorial(Text1.Text)
End SubPrivate Sub Command2_Click()
Text1.Text = ""
Label3.Caption = ""
End Sub估计大家都见过这个程序啊,上面程序是没有问题的,测试过都正确。
我有一点不明白啊,第三行函数反复调用自己,假如我输入的n=3,在函数调用
过程中,最后执行factorial (0),应该执行哪一条语句。是执行n=0,then t=1?
解决方案 »
- 居然混到星星了……散点浮云
- 打印小票程序是否错误
- 招聘VB程序员
- 一个关于进程的问题???
- 初级菜鸟请教您!Access2000 & VB6.0(在线等待,谢谢)
- 请教用水晶报表的高手们,
- 谁能帮我看看这段程式。(继前一封贴子)
- 我这个例子里缺了什么?”以及“我应该检查什么 ,为什么不对呢?
- 我在98下开发的VB串口程序在win2000下测试有时OK有时又无法通过,是什么问题呢?请问各位大狭?要把Win98下VB开发的程序移植到2000下需要改
- 我参照一篇文章用MSFlexGrid结合text控件实现在MSFlexGrid表格里改数据,单不知道怎样把修改后的数据写到数据库里!急救!!!
- 悲剧了,项目做了三分之一,发现VB6不能支持Unicode字符
- 关于access 的修复与压缩
factorial (0)
就是n=0了递归过程的程序运行方式可能不是你想的样子,你单步跟踪一下,就可以大体知道了。
If语句成立,执行then,不成立,执行else,怎么会同时执行?
Function factorial(n As Integer) As Double
Dim t As Double
Dim f As Double If n = 0 Then
t = 1
Else
f = factorial(n - 1)
t = n * f
End If
factorial = t
End Function