回 帖 发 新 帖 刷新版面

主题:VB阶乘编程

请问一下,1!+2!+3!……20!用VB怎么编程啊?
创建窗体单击事件过程

回复列表 (共2个回复)

沙发

20的阶乘?
超出了长整形数的范围。
要编这样的程序,方法有:自定义数据类型
                        字符串表示
                等方法。

板凳

DefLng A-Z
Function JXX(N) As String
Dim s(16383)
s(0) = 1
s(1) = 1
For i = 1 To N
    For j = 1 To s(0)
        x = i * s(j) + x
        s(j) = x Mod 10000
        x = x \ 10000
    Next
    If x > 0 Then
       s(0) = s(0) + 1
       s(s(0)) = x
       x = 0
    End If
Next
Z$ = Trim$(Str(s(s(0))))
For i = s(0) - 1 To 1 Step -1
    Z$ = Z$ & Right$("0000" + LTrim$(Str$(s(i))), 4)
Next
JXX = Z$
End Function

这是从狱中肺炎的四行C代码改过来的.
在VBA for Excel2007中验证过.

我来回复

您尚未登录,请登录后再回复。点此登录或注册