vb阶乘问题怎么做?

如题所述

阶乘,其实就是一个循环而已,当然,因为要用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,只是这样一来转化回正常十进制的整数要稍微麻烦一些。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-13
Private Sub Command1_Click()
Dim i As Integer, j As Integer'声明变量
Dim k As Long
i = Val(Text1) '指定n的值来源于文本框
k = 1 '变量初始化
For j = 1 To n '定义循环范围(从1到n)
k = k * j '计算
Next j
MsgBox i & "=" & k '输出结果
End Sub
第2个回答  2011-12-13
给你个列子:
dim s as interger
s=1
for i=n(你设置的数字,可以输入) to 2 step -1
s=s*i
next
msgbox (n & “的阶乘=”& s)
第3个回答  2012-03-08
Public Function fn(ByVal N As Integer)
If N = 0 Then fn = 1
If N >= 1 Then
fn = fn(N - 1) * N
End If
End Function
第4个回答  2011-12-13
迭代调用法。本回答被提问者采纳
相似回答