29 lines
697 B
Plaintext
29 lines
697 B
Plaintext
Option Explicit
|
|
|
|
Sub Main()
|
|
Dim i As Integer
|
|
For i = 1 To 17
|
|
Debug.Print "Factorial " & i & " , recursive : " & FactRec(i) & ", iterative : " & FactIter(i)
|
|
Next
|
|
Debug.Print "Factorial 120, recursive : " & FactRec(120) & ", iterative : " & FactIter(120)
|
|
End Sub
|
|
|
|
Private Function FactRec(Nb As Integer) As String
|
|
If Nb > 170 Or Nb < 0 Then FactRec = 0: Exit Function
|
|
If Nb = 1 Or Nb = 0 Then
|
|
FactRec = 1
|
|
Else
|
|
FactRec = Nb * FactRec(Nb - 1)
|
|
End If
|
|
End Function
|
|
|
|
Private Function FactIter(Nb As Integer)
|
|
If Nb > 170 Or Nb < 0 Then FactIter = 0: Exit Function
|
|
Dim i As Integer, F
|
|
F = 1
|
|
For i = 1 To Nb
|
|
F = F * i
|
|
Next i
|
|
FactIter = F
|
|
End Function
|