大数的阶乘

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Public Function Factorial(intC As Integer) As String

On Error GoTo myErr:

Dim intA() As Integer, intT() As Integer, i As Integer

Dim j As Integer, intR As Integer

ReDim intA(20), intT(20)

If intC < 2 Then Exit Function

intR = 20

intA(0) = 1

For i = 2 To intC

For j = 0 To intR

intT(j) = intA(j) * i

Next j

j = 0

Do Until j > intR

intA(j) = intT(j) Mod 10

If intT(j) >= 10 Then intT(j + 1) = intT(j + 1) + intT(j) \ 10

j = j + 1

Loop

Next i

Do While True

j = j - 1

If intA(j) > 0 Then Exit Do

Loop

For j = j To 0 Step -1

Factorial = Factorial & intA(j)

Next j

Exit Function

myErr:

If Err.Number = 9 Then

intR = intR + 20

ReDim Preserve intA(intR)

ReDim Preserve intT(intR)

Resume

Else

MsgBox "UnKnow ERR:" & Err.Description & ":" & Err.Number, vbCritical + vbOKOnly

End If

End Function

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航