Fibonacci recursivo y con ciclos en Ruby

Sucesión fibonacci con recursividad y ciclos en Ruby

Siguiendo con los algoritmos y ejercicios resueltos en Ruby, vamos a ver hoy cómo obtener el número fibonacci que va en determinada posición.

Fibonacci recursivo y con ciclos en Ruby
Fibonacci recursivo y con ciclos en Ruby

Por ejemplo, el número de la sucesión fibonacci que va en la posición 7 (recordemos que comienza desde cero) es el 13, pues la sucesión va así:

0, 1, 1, 2, 3, 5, 8, 13

Lo que haremos con Ruby será recibir un número y regresar el número fibonacci que va en esa posición; lo haremos de forma recursiva y también usando ciclos.

Nota: las funciones no imprimen la sucesión, pero basta con que dentro de cada una de ellas se imprima el valor con puts y listo, la sucesión será impresa.

El algoritmo para obtener la sucesión fibonacci en Ruby

Se comienza en 0 y en 1, y luego, el siguiente valor es la suma de los dos anteriores. Con Ruby no se necesita una variable temporal, pues se puede hacer así:

siguiente, actual = siguiente + actual, siguiente

El ciclo se repite hasta que se alcance la posición, y se regresa el valor que esté en actual.

Fibonacci con ciclos en Ruby

Aquí está la implementación con lo que vendría siendo un ciclo for en otros lenguajes de programación:

Al final se regresa el valor actual, aunque no está la palabra reservada return, es la última expresión de la función y por lo tanto es lo que se regresa.

Fibonacci recursivo con Ruby

En este caso utilicé la fórmula que estaba en Wikipedia, la cual usa recursividad:

Forma de llamar a las funciones

Para llamarlas simplemente escribe:

fibonacci numero

Por ejemplo, fibonacci 5

También se puede llamar a la función y asignar el resultado a una variable:

numero = fibonacci 5

Descargar ejercicios

Eres libre de descargar el código fuente. Para ello, ponlo en un archivo con extensión rb, asegúrate de tener instalado Ruby, navega hasta la terminal y ejecuta:

ruby archivo.rb

Probar en línea

Aquí dejo ambas funciones que se pueden probar directamente en el navegador:

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario