Estoy resolviendo esto en dos modos de recursión.
Recursion regular:
def calc Producto (n):
if (len (str (n)) == 1):
volver n
más:
retorno (n% 10 * calcProduct (n / 10))
- ¿Cómo puede un programador competitivo construir cosas solo por algoritmo y un lenguaje y nada sobre la web?
- ¿Qué algoritmos debo saber para desarrollar una aplicación web sin conexión primero?
- ¿Cuál es la forma más rápida y eficiente de hacer una sustitución / sustitución de cadenas dentro de una cadena grande con JavaScript?
- ¿Cuál es la relación de recurrencia para el tipo de selección?
- ¿Cuáles son los mejores recursos para aprender R? Tratando de construir mi propio algoritmo de predicción basado en datos anteriores que tengo en archivos csv y que solía ser un desarrollador de Ruby hace un par de años
imprimir (calcProduct (12345))
Recursión de la cola:
def calc Producto (n, producto):
if (len (str (n)) == 1):
producto impreso
más:
calcProduct (n / 10, ((n% 10) * producto))
calcProduct (12345,1)
Más detalles sobre la recursividad de la cola
EDITAR: Deepak Gupta editado de acuerdo con su comentario
En lugar de imprimir el resultado, simplemente repita el proceso con algún cambio en la condición
# su código va aquí
def calc Producto (n, producto):
si (n <= 0):
if (len (str (producto))> 1):
#print product
calcProduct (producto, 1)
más:
producto impreso
más:
rem = 1
si (n% 10! = 0):
rem = (n% 10)
calcProduct (n / 10, (rem * producto))
calcProduct (123456,1)
Compile esto en línea