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.
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
)
Veamos la primer función que devuelve el número que va en la sucesión, y que además permite imprimir la misma.
long fibonacci(long posicion, int imprimir) {
long siguiente = 1, actual = 0, temporal = 0;
for (long x = 1; x <= posicion; x++) {
if (imprimir)
printf("%ld, ", actual);
temporal = actual;
actual = siguiente;
siguiente = siguiente + temporal;
}
if (imprimir)
printf("%ld", actual);
return actual;
}
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:
// No queremos almacenar el resultado, solo imprimir la serie
fibonacci(20, 1);
// Ahora sí queremos el resultado y no queremos imprimir
unsigned long fibonacciDe10 = fibonacci(10, 0);
printf("\nFibonacci de 10 es: %ld", fibonacciDe10);
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.
Lo siguiente es la implementación de este algoritmo pero usando recursividad o recursión. Queda así:
long fibonacciRecursivo(long posicion) {
if (posicion < 2)
return posicion;
return fibonacciRecursivo(posicion - 1) + fibonacciRecursivo(posicion - 2);
}
En este caso no imprime nada, simplemente devuelve el número que va en la posición. Por ejemplo:
unsigned long fibonacciDe10 = fibonacciRecursivo(10);
printf("Fibonacci de 10 es: %ld", fibonacciDe10);
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.