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:

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:
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.