Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas
Recursividad
Mgt Ing. María del Pilar Venegas Vergara
RECURSIVIDAD
DEFINICIÓN
Funciones recursivas
Una función recursiva es aquella que contiene llamadas a ella misma
n! = n * (n -1) !
Función recursiva sin retorno
Un ejemplo de una función recursiva sin retorno, es el ejemplo de cuenta regresiva hasta cero a partir de un
número:
def cuenta_regresiva(numero):
numero-=1
if numero > 0:
print(numero)
cuenta_regresiva(numero)
else:
print ("booooom")
print ("Fin de la funcion", numero)
cuenta_regresiva(5)
Función recursiva con retorno
Un ejemplo de una función recursiva con retorno, es el ejemplo del cálculo del factorial de un número corresponde al producto
de todos los números desde 1 hasta el propio número
def factorial(n):
if n == 0: # Caso Base
return 1
else: # Caso recurrente
return n*factorial(n-1)
● TOTAL = 113
●Libro 1= 50 pag Libro 2=30 pag Libro 3=15 pag libro 4=18 pag
print(suma)
Ejemplo
- Calcular el Nro total de hojas que se tienen de varios libros
TOTAL = 50 + TOTAL = 30 +
TOTAL = 15 +
TOTAL= 18
Libro 1= 50 pag Libro 2=30 pag Libro 3=15 pag libro 4=18 pag
def totalPaginas(libros):
METODO RECURSIVO if len(libros)==1:
return libros[0]
return libros[0] + totalPaginas(libros[1:])
print(totalPaginas([50,30,15,18]))
Ejemplo
- Calcular el Nro total de hojas que se tienen de varios libros
METODO RECURSIVO
def totalPaginas(libros):
if len(libros)==1:
return libros[0]
return libros[0] + totalPaginas(libros[1:])
print(totalPaginas([50,30,15,18]))
Ejemplo
def totalPaginas(libros):
if len(libros)==1:
return libros[0]
return libros[0] + totalPaginas(libros[1:])
print(totalPaginas([50,30,15,18]))
Ejemplo
FACTORIAL
●factorial(n) = n × (n – 1) × (n – 2) × … × 2 × 1
● factorial(n-1)=(n – 1) × (n – 2) × … × 2 × 1
●
● factorial(n-2)
●factorial(n) = n × factorial(n – 1)
Ejemplo
FACTORIAL
def factorial(n):
resultado = 1
for i in range(n):
resultado *= (i + 1)
return resultado
print (factorial(5))
Ejemplo
FACTORIAL
def factorial(n):
if n == 0: # Caso Base
return 1
else: # Caso recurrente
return n*factorial(n-1)
print (factorial(5))
Gracias