阶乘,其实就是一个循环而已,当然,因为要用DO来进行,比较简单的如下:
Private Sub Command1_Click()
Dim i As Long, j As Long, k As Long
k = 6 '要进行阶乘的数
i = 1 '阶乘的结果
j = 1
Do
i = i j
j = j + 1
Loop Until j > k
MsgBox CStr(k) & "的阶乘=" & CStr(i)
End Sub
实际上,阶乘必然要涉及到一个问题,那就是变量的数据范围,一般处理整数都是用Long的,Long的的上限是2^31-1,大概20亿多一点,用其他的变量类型处理起来很不方便,像取余和整除,超过Long的上限都不能用。
所以,要处理大的整数,就不能直接用变量来处理,我的方法是用一个数组来表达一个整数,然后,当要对这个整数进行运算时,就调用事先编好的函数来代替一般的加减乘除和取余整除。最简单的想法就是用数组的每一个元素来表达整数的每一位,当然是十进制下的一位,这样编写运算用的函数非常简单,当然如果要考虑效率的话,可以用数组的每一个元素来表达整数的三位,效率最高的情况应该是每一个元素代表1024,只是这样一来转化回正常十进制的整数要稍微麻烦一些。
Private Sub Command1_Click()
Dim a As Long, b As Long, c As Long
a = Val(InputBox("输入a", "提示"))
b = Val(InputBox("输入b", "提示"))
c = Val(InputBox("输入c", "提示"))
Dim r as Long
r=Multiply(a)+Multiply(b)+Multiply(c)
Print r
End Sub
Private Function Multiply(n As Long) As Long
Dim x As Long
Multiply = 1
For x = 1 To n
Multiply = Multiply x
Next
End Function
建一个Command1。中间那部分就是运算程序。
代码如下。
=============
Private Sub Command1_Click()
Dim a As Integer, i As Integer, s As Double
s = 1
a = InputBox("输入数")
For i = 2 To a
s = s i
Next
MsgBox a & "的阶乘是:" & s
End Sub
按照你给出的结果,12345=120 。其源代码如下:
Private Sub Command1_Click()
Cls
n = Val(Text1Text)
For i = 1 To n
Print i;
If (i < n) Then
Print "";
Else: Print "=";
End If
Next i
s = 1
For j = 1 To n
s = s j
Next j
Print s
End Sub
自己编写函数代码:
Private Function 求阶乘(Byval n As Integer) As Long
Dim i As Integer
Dim Fac As Long
Fac = 1
For i = 1 To n
Fac = Fac i
Next i
求阶乘 = Fac
End Function
在你需要求阶乘的地方,调用该函数:
例如:
Dim y As Long
y = 求阶乘(10) '求阶乘(10)将用10调用上面的自定义函数,返回10的阶乘
以上就是关于vb阶乘问题怎么做全部的内容,包括:vb阶乘问题怎么做、VB中关于阶乘、阶乘在VB 中怎么写呀等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)