阶乘,其实就是一个循环而已,当然,因为要用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,只是这样一来转化回正常十进制的整数要稍微麻烦一些。
温馨提示:答案为网友推荐,仅供参考