Un programador necesita implementar una función recursiva para calcular el factorial de un número. Sin embargo, la función está causando un desbordamiento de pila cuando se intenta calcular el factorial de números grandes. ¿Cómo puede solucionar este problema?