En matemáticas, se conoce como sucesión de Fibonacci a una secuencia infinita de números naturales, que se inicializa con los números 0 y 1, y continúa construyéndose sumando los dos términos anteriores para obtener el siguiente número de la secuencia, en otras palabras, el siguiente número se obtiene sumando los 2 últimos números de la sucesión. Por ejemplo, el tercer término es la suma de los dos primeros términos, el cuarto término es la suma del segundo y tercer término, y así sucesivamente.
Los términos de esta secuencia se conocen como números de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... y se extienden hacía el infinito.
Aunque ya existían indicios de esta secuencia en la literatura matemática india, fue el matemático italiano Leonardo de Pisa quien la describió y la dio a conocer en occidente durante el siglo XIII. Esta sucesión tiene interesantes propiedades matemáticas que son aprovechadas en diversos campos y aplicaciones como: informática, economía y arte (este último en conjunto con la proporción áurea). La serie de Fibonacci también se encuentra en configuraciones biológicas, como patrones de crecimiento y estructuras geométricas naturales.
Después de esta breve explicación, pasemos al código:
#include <iostream>
int main() {
unsigned int n;
std::cout << "Ingrese el número de términos de la serie de Fibonacci que desea ver: ";
std::cin >> n;
unsigned int first = 0;
unsigned int second = 1;
unsigned int next;
std::cout << first << " " << second << " ";
for (unsigned int i = 0; i < n - 2; i++) {
next = first + second;
std::cout << next << " ";
first = second;
second = next;
}
std::cout << std::endl;
return 0;
}
El programa solicita al usuario que ingrese el número de términos de la serie de Fibonacci que desea imprimir, luego, se declaran tres variables enteras sin signo: 'first', 'second' y 'next'. Estas variables se utilizan para almacenar los valores de los términos de la serie. La variable 'first' se inicializa en 0, la variable 'second' se inicializa en 1 y la variable 'next' se utiliza para calcular el siguiente término de la serie.
Después de inicializar las variables, el programa imprime los dos primeros términos de la serie, que son 0 y 1. Posteriormente, el programa entra en un bucle 'for' que se ejecuta 'n-2' veces, donde 'n' es el número de términos ingresado por el usuario. En cada iteración del bucle, el programa calcula el siguiente término de la serie, sumando los valores de 'first' y 'second' y almacenándolo en la variable 'next'. El programa imprime el valor de next y actualiza los valores de first y second para el siguiente cálculo. El proceso se repite hasta salir del bucle.
En resumen, el programa genera la secuencia de Fibonacci hasta el N-ésimo término (dependiendo de la capacidad del tipo de dato) y lo imprime en la consola del compilador.
El código ha sido probado en Code::Blocks en Windows, por lo que es completamente funcional.
Puedes descargar el código .CPP aquí.
NOTA: Si al correr el programa los acentos o caracteres especiales no se muestran correctamente, puedes usar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?