Fibonacci en C – Iterativo y recursivo

Fibonacci iterativo en C

Resumen: programar algoritmo Fibonacci en C de manera iterativa (usando un ciclo) y recursiva. También imprimir la sucesión fibonacci.

En este post vamos a trabajar con la sucesión Fibonacci para mostrar el número que iría en determinada posición de la serie; para imprimirla desde el 0 hasta un número y para hacer lo mismo usando recursividad.

Todo esto lo vamos a hacer en el lenguaje de programación C usando ciclos.

El algoritmo

Es muy simple, se comienza en 0 y 1 y después los siguientes números son la suma de los anteriores. Si queremos imprimir la sucesión, usamos printf.

Vamos a hacer funciones que devuelven el número que va en determinada posición de la sucesión. Por ejemplo, ya que la sucesión es:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765

Podemos decir que el número que va en la posición 7 es 13 (contando desde el 0)

Fibonacci iterativo en C

Veamos la primer función que devuelve el número que va en la sucesión, y que además permite imprimir la misma.

Recibe la posición hasta la que queremos imprimir y un booleano para decir si la sucesión debe imprimirse o no. Devuelve el número de la sucesión fibonacci que va en la posición solicitada.

Su modo de uso es el siguiente, en el primer caso imprimimos la sucesión:

En la línea 1 simplemente invocamos a la función y no necesitamos almacenar el resultado porque simplemente queremos imprimir la sucesión fibonacci en C.

Después, en la línea 4 y 5 almacenamos el valor y no imprimimos la serie. Al final la salida es:

Fibonacci iterativo en C

Imprimir la serie fibonacci en C y obtener el número que va en determinada posición

Si quieres puedes probarlo aquí. Ahora vamos a ver el Fibonacci recursivo en C.

Fibonacci recursivo en C

Lo siguiente es la implementación de este algoritmo pero usando recursividad o recursión. Queda así:

En este caso no imprime nada, simplemente devuelve el número que va en la posición. Por ejemplo:

También puedes ejecutarlo aquí.

Conclusiones y notas finales

No olvides que la función devuelve el número que va en determinada posición pero comienza a contar desde el 0, así como la notación de arreglos; es decir, si quieres el número que va en la primera posición invoca al algoritmo con la posición 0.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *