VBA编写自定义函数计算N阶乘 末尾0有多少个

2025-04-14 08:23:23
推荐回答(2个)
回答1:

Option Explicit

Public Function factoid(N As Long) As Long
If N = 1 Then
factoid = 1
Else
factoid = factoid(N - 1) * N
End If
End Function

Sub countZeroCount()
Const N As Integer = 1024
Dim result As Long
Dim rx As Long
Dim i, j As Integer
result = factoid(N)
'开始统计0的个数
For i = 1 To result
j = i
Do While j Mod 5 = 0
rx = rx + 1
i = Int(j / 5)
Loop
Next

Debug.Print rx

End Sub

回答2:

Function fact_zeros(ByVal n As Integer) As Integer
k = 0
While n > 0
k = k + n \ 5
n = n \ 5
Wend
fact_zeros = k
End Function