Buenas, tengo una duda. Porqué en el código **def factorial (n) ** hace como si fuera un bucle y halla la respuesta sin haber puesto un ...

Pregunta de la clase:
Recursividad
Roberto Lee

Roberto Lee

Pregunta
studenthace 5 años

Buenas, tengo una duda. Porqué en el código **def factorial (n) ** hace como si fuera un bucle y halla la respuesta sin haber puesto un while o un for. antes?

3 respuestas
para escribir tu comentario
    Paula Scatarelli

    Paula Scatarelli

    studenthace 4 años

    @ceporro mejor explicación! y la más simple, como debe ser. Muchas gracias!!!

    Sebastián Andrade

    Sebastián Andrade

    studenthace 5 años

    Como te dijo el compañero es debido a la recursividad, la recursividad es basicamente cuando una funcion se llama a si misma

    CRISTIAN BARBERO PÉREZ

    CRISTIAN BARBERO PÉREZ

    studenthace 5 años

    Es debido a la recursividad.

    Imagina que quieres calcular el factorial de 3:

    Se llama a la función factorial(3) y resulta

    factorial(3) = 3 * factorial(2)

    Entonces para resolverlo se llama a la función factorial(2):

    factorial(2) = 2 * factorial(1)

    Por tanto se llama a la función factorial(1):

    factorial(1) = 1

    Como factorial(1) ya está resuelto, se retrocede a factorial(2) que será 2, se retrocede a factorial(3) que será 3*2

Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.

Curso de Pensamiento Computacional con Python
Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.