by michele berardi (9 Submissions)
Category: Math/Dates
Compatability: Visual Basic 5.0
Difficulty: Advanced
Date Added: Wed 3rd February 2021
Rating: (3 Votes)
Explain a metodology for a quick computation of
N! ( factorial) suggestion and optimization are wellcomed!
Dim N As Double, b As Double, c As Double, p As Double
'
' Fast Way To Calculate N! ( N Factorial)
'
' A is N
' using visual basic my original algorithm
' is adapted to the vb limits..
' you can use long or int instead of double
' for small calculation..
' some tips require the use of asr (aritmetic
' shift right)
' instead of division by 2!
' and code optimization instead - 1 you can....
' a good exercize of optimization... enjoy!
' (also assembly form of this code boost the
' performances!)
'
' N.B.
' using double I extend the range of N!
' that i can represent!
' PASS TO VARIABLE N
' THE VALUE FOR WITCH
' YOU MUST CALCULATE
' FACTORIAL ( N! )
'
c = N - 1
p = 1
While c > 0
p = 0
b = c
While b > 0
If b And 1 Then
p = p + N
End If
b = int (b / 2) ' YOU MUST USE THE INTEGER PART NOT THE REST! asr more efficient fo division!
N = N + N
Wend
N = p
c = c - 1
Wend
MsgBox p ' the result of N!