Academia Hack — Curso Introductorio — Extra I
Recursividad
2 min readMay 3, 2019
Funciones recursivas
Las funciones recursivas son funciones que se invocan a ellas mismas. Toda función recursiva debe tener 2 características obligatorias:
- Tener una condición de parada, conocido como caso base.
- Invocarse a ella misma, llamado caso recursivo.
Algunos ejemplos clásicos de recursividad son la función factorial, la sucesión de Fibonacci, el recorrido de listas y árboles binarios, etc.
Función Sumatoria recursiva
def sumat(n)
if n > 0
return n + sumat(n — 1) # caso recursivo
end
return 0 # caso base
end
Función Factorial recursiva
def fact(n)
if n > 0 # caso recursivo
return n * fact(n — 1)
end
return 1 #caso base
end# Versión pedagógica
def fact(n)
if n > 0 # caso recursivo
return n * fact(n — 1)
end if n == 0 # caso base
return 1
end
end
Sucesión de Fibonacci
# Suces. de Fibonacci: f(n) = f(n-1) + f(n-2) ^ f(1) = 1 ^ f(0) = 0def fibonacci2( n )
if n > 1 # caso recursivo
return fibonacci2(n — 1) + fibonacci2(n — 2)
end
return n # caso base
end# Versión pedagógicadef fibonacci n
if n > 1 # caso recursivo
return fibonacci(n — 1) + fibonacci(n — 2)
end
if n == 1 # caso base
return 1
end
if n == 0 #caso base
return 0
end
end
Ejercicios propuestos
- Escriba una función recursiva en Ruby que muestre por pantalla los números del 1 al 100.
- Escriba una función recursiva en Ruby que devuelva la potencia de un número elevado a un exponente cualquiera. La base y el exponente son indicados por parámetros.
- Escriba una función recursiva en Ruby para calcular la sumatoria desde uno (1) hasta un número dado
- Escriba una función recursiva en Ruby que, dado un número, devuelva su factorial.
- Escriba una función recursiva en Ruby que detecte si un número es primo o no.
- Escriba una función recursiva en Ruby para verificar si un texto es palíndromo o no.