'N!
'Print N_jx(6)
'递归方式
Public Function N_jx(cs As Long) As Double
if cs<1 then
exit function
end if
If cs = 1 Then
N_jx = 1
'这里是返回值,左边不能用再带括号。带括号是引用。
Else
N_jx = cs * N_jx(cs - 1)
End If
End Function
'----上面是我前面回贴子时写的,下面是用你的改的--------
'我函数名与你的不同,这个无所谓,参数类型不同,我改你的定义。
Private Sub Form_Load()
'在这个事件中使用 PRINT 方法,就必须设置 自动重绘为 真,否则看不到结果。
Dim num As string
dim num1 as long
num = InputBox("enter a number from 0 to 20 or -1 to end:")
if isnumber(num) then
'判断输入是否为数字
num1=clng(num)
'转化为长整数
If num1 > 0 And num1 <= 20 Then
'判断范围
print num1 ; " 的阶乘是:" ; N_jx(num1)
'如果使用 print 进行输出的话,建议使用分隔符进行连接各个输出内容,已节省系统开销。
else
'不在范围提示
print "输入的数据不在 0 - 20 这间。"
end if
else
'不是数字时提示
print "输入的不是数值"
end if
End Sub