Generar una Secuencia de Fibonacci en C

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderemos a generar una secuencia de Fibonacci en C. La secuencia de Fibonacci es una secuencia matemática bien conocida donde cada número es la suma de los dos anteriores. Empezaremos leyendo el número de términos del usuario, luego usaremos un bucle para generar la secuencia y, finalmente, imprimiremos la secuencia de Fibonacci resultante. Este laboratorio cubre conceptos fundamentales en teoría de números y matemáticas discretas utilizando el lenguaje de programación C.

Leer el Número de Términos

En este paso, aprenderemos a leer el número de términos para generar una secuencia de Fibonacci en C. Este es el primer paso crucial para crear nuestro programa de secuencia de Fibonacci.

Primero, creemos un nuevo archivo C en el directorio ~/project:

cd ~/project
nano fibonacci.c

Ahora, escribamos el código inicial para leer el número de términos del usuario:

#include <stdio.h>

int main() {
    int n;

    printf("Ingrese el número de términos en la secuencia de Fibonacci: ");
    scanf("%d", &n);

    printf("Usted ingresó %d términos.\n", n);

    return 0;
}

Compilemos y ejecutemos el programa para probar nuestra entrada:

gcc fibonacci.c -o fibonacci
./fibonacci

Salida de ejemplo:

Ingrese el número de términos en la secuencia de Fibonacci: 10
Usted ingresó 10 términos.
Explicación
  • scanf("%d", &n) lee una entrada de entero del usuario y la almacena en la variable n.
  • Usamos printf() para solicitar al usuario y mostrar el número de términos ingresados.
  • El programa valida que podemos capturar correctamente la entrada del usuario para la longitud de la secuencia.

Usar un Bucle para Generar Términos

En este paso, modificaremos nuestro programa anterior de secuencia de Fibonacci para generar la secuencia utilizando un bucle. Construiremos sobre el código del paso anterior para crear la secuencia de Fibonacci real.

Actualicemos el archivo fibonacci.c:

cd ~/project
nano fibonacci.c

Ahora, modifiquemos el código para generar términos de Fibonacci usando un bucle for:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("Ingrese el número de términos en la secuencia de Fibonacci: ");
    scanf("%d", &n);

    printf("Secuencia de Fibonacci de %d términos: \n", n);

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d ", next);
    }
    printf("\n");

    return 0;
}

Compile y ejecuta el programa:

gcc fibonacci.c -o fibonacci
./fibonacci

Salida de ejemplo:

Ingrese el número de términos en la secuencia de Fibonacci: 10
Secuencia de Fibonacci de 10 términos:
0 1 1 2 3 5 8 13 21 34
Explicación
  • Inicializamos first y second como los dos primeros términos de la secuencia de Fibonacci.
  • El bucle for genera los términos subsiguientes sumando los dos términos anteriores.
  • next = first + second calcula el siguiente término.
  • Actualizamos first y second en cada iteración para mantener la progresión de la secuencia.
  • El bucle continúa hasta que generamos el número especificado de términos.

Imprimir la Secuencia

En este paso final, mejoraremos nuestro programa de secuencia de Fibonacci agregando opciones de formato y mejorando la presentación de la salida.

Actualicemos el archivo fibonacci.c para mejorar la impresión de la secuencia:

cd ~/project
nano fibonacci.c

Modifiquemos el código para agregar más opciones de formato e impresión:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("Ingrese el número de términos en la secuencia de Fibonacci: ");
    scanf("%d", &n);

    printf("Secuencia de Fibonacci de %d términos:\n", n);

    printf("Índice\tValor\n");
    printf("-----\t-----\n");

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d\t%d\n", i, next);
    }

    return 0;
}

Compile y ejecuta el programa:

gcc fibonacci.c -o fibonacci
./fibonacci

Salida de ejemplo:

Ingrese el número de términos en la secuencia de Fibonacci: 8
Secuencia de Fibonacci de 8 términos:
Índice	Valor
-----	-----
0	0
1	1
2	1
3	2
4	3
5	5
6	8
7	13
Explicación
  • Se agregó una tabla formateada con columnas de índice y valor.
  • \t se utiliza para columnas separadas por tabulaciones para crear una disposición de tabla limpia.
  • Cada término ahora se imprime con su índice correspondiente.
  • La salida proporciona una vista clara y estructurada de la secuencia de Fibonacci.

Resumen

En este laboratorio, aprendimos cómo leer el número de términos del usuario para generar una secuencia de Fibonacci en C. Primero, solicitamos al usuario que ingrese el número deseado de términos, luego usamos un bucle para calcular e imprimir la secuencia de Fibonacci. Los pasos clave implican inicializar los dos primeros números de Fibonacci y luego actualizarlos en cada iteración del bucle para generar el siguiente número de la secuencia.

Finalmente, imprimimos la secuencia de Fibonacci completa basada en la entrada del usuario. Este laboratorio proporciona un ejemplo práctico del uso de bucles y variables para generar una secuencia matemática clásica en un lenguaje de programación.