I'm struggling to understand this factorial algorithm.
Falling(n, m):
if m = 0
return 1
if m = 1
return n
return Falling(n, floor(m/2))*
Falling(n - floor(m/2), ceil(m/2))
The algorithm should compute $n!/(n-m)!$
I'm analyzing it in the case of n = m, i.e it returns n! Now I'm getting the correct results from my implementation of it in Java, but the correctness of it has shaking my head.
How should I approach this?