Tu argumento no es válido compañero. Creo que eso era lo que discutías con Siq anteriormente.
Es totalmente INCORRECTO llamar más de 1 vez a una misma función, con los mismos parámetros y que dé el mismo resultado.
Y vuelvo y digo, tu código no es extensible.
si supieras leer el código lo entenderías
la diferencia que hay es que de la manera dinámica solo calculas
UNA VEZ los factoriales, en cambio, Tú los calculas continuamente, si calculas por ejemplo el factorial de 15, y después el de 14, lo estás haciendo de una manera poco eficiente.
Cuando, de la manera dinámica calculas el de 15, entonces habrá guardado ya
TODOS los factoriales en una tabla y no será necesario
VOLVERLOS A CALCULAR como hace tu solución.