Ejercicio 05 — Leer N y mostrar los N primeros terminos de la serie de Fibonacci
Dificultad: amarillo · Módulo 03 (Bucles)
Enunciado
Leer N y mostrar los N primeros terminos de la serie de Fibonacci.
Diagrama de flujo

Cómo se resuelve
La serie de Fibonacci empieza con 0 y 1, y cada término siguiente es la suma de los dos anteriores: 0, 1, 1, 2, 3, 5, 8, .... El reto es generarla con un bucle usando solo dos variables que se van “deslizando” a lo largo de la serie.
- Antes de nada, el programa comprueba
if (n <= 0)y sale conreturn 1siNno es válido: no tiene sentido pedir “0 términos”. - Arrancamos con
long long a = 0, b = 1, los dos primeros términos. - En cada vuelta imprimimos
a(el término actual) y luego avanzamos:siguiente = a + b, despuésa = byb = siguiente. Es como si una ventana de dos números fuera resbalando hacia la derecha por la sucesión.
La trampa clave está en el orden de las tres asignaciones. Necesitamos la variable auxiliar siguiente porque, si hiciéramos a = b primero y luego intentáramos calcular b = a + b, ya habríamos perdido el valor original de a y el cálculo saldría mal. Guardar antes la suma en siguiente protege ese valor. Como segundo detalle, se usa long long porque Fibonacci también crece muy rápido y desbordaría un int en pocas decenas de términos.
Para practicar — cópialo en Dev-C++
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
/*
* Curso de C — Modulo 03: Bucles
* Ejercicio 05 — PRACTICA (rellena los TODO)
* Enunciado: Leer N y mostrar los N primeros terminos de la serie de Fibonacci.
* Dificultad: amarillo
* Compilar: gcc -std=c11 -Wall ej05_practica.c -o ej05 && ./ej05
*/
#include <stdio.h>
int main(void) {
int n;
// TODO 1: Pide N al usuario y leelo
// TODO 2: Declara dos variables long long: a = 0, b = 1
// Estos son los dos primeros terminos de la serie
// TODO 3: Bucle for de i=0 a i<n:
// - Imprime 'a' (el termino actual)
// - Calcula el siguiente: siguiente = a + b
// - Actualiza: a = b, b = siguiente
// CUIDADO con el orden de las asignaciones: si cambias a primero,
// pierdes su valor al calcular b. Usa una variable temporal.
// TODO 4: Imprime un salto de linea al final
return 0;
}Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 03: Bucles
* Ejercicio 05 — MODELO (resuelto)
* Enunciado: Leer N y mostrar los N primeros terminos de la serie de Fibonacci.
* Dificultad: amarillo
* Compilar: gcc -std=c11 -Wall ej05_modelo.c -o ej05 && ./ej05
*/
#include <stdio.h>
int main(void) {
int n;
printf("Cuantos terminos de Fibonacci quieres ver? ");
scanf("%d", &n);
if (n <= 0) {
printf("N debe ser mayor que 0.\n");
return 1;
}
// Los dos primeros terminos son fijos: 0 y 1
long long a = 0, b = 1;
printf("Fibonacci (%d terminos): ", n);
for (int i = 0; i < n; i++) {
printf("%lld", a);
if (i < n - 1) printf(" "); // separador entre terminos
long long siguiente = a + b; // calculamos el siguiente
a = b; // avanzamos: a toma el valor de b
b = siguiente; // b toma el siguiente
}
printf("\n");
return 0;
}Cómo usarlo
Dev-C++ (Windows): Archivo → Nuevo → Código fuente, pega el código y pulsa F11 (compilar y ejecutar). Si ves los acentos raros en la consola, escribe chcp 65001 y vuelve a ejecutar.