
Vamos a estudiar como implementar la serie Fibonacci en Java. Fue Leonardo de Pisa quién desarrolló esta conocida sucesión, el matemático vivió entre los años 1170 y 1250. el algoritmo lo descubrió partiendo de un análisis sobre la crianza de conejos.
Las aplicaciones directas de este desarrollo son muchas, desde la teoría de juegos, la computación, la biología, etc.
Una de las características más destacables de esta sucesión es que cada elemento de la serie es la suma de los dos elementos anteriores.
Definición matemática
Para definir la sucesión matemáticamente podemos hacerlo de la siguiente forma:
- f0 = 0
- Primer elemento: f1 = 1
- Elementos siguientes: fn = fn-1 + fn-2

Serie de Fibonacci en Java
Código Java que imprime por pantalla los N primeros elementos de la sucesión de Fibonacci:
private void sucesionFibonacci(int numeroElementosAImprimir)
{
int primerElemento=0;
int segundoElemento=1;
if(numeroElementosAImprimir == 1)
{
System.out.println(primerElemento);
}
else if(numeroElementosAImprimir==2)
{
System.out.println(primerElemento);
System.out.println(segundoElemento);
}
if(numeroElementosAImprimir > 2)
{
System.out.println(primerElemento);
System.out.println(segundoElemento);
for(int i=3; i<=numeroElementosAImprimir; i++)
{
int nuevoElemento=primerElemento+segundoElemento;
System.out.println(nuevoElemento);
primerElemento=segundoElemento;
segundoElemento=nuevoElemento;
}
}
}
Solución recursiva serie Fibonacci Java
La sucesión de Fibonacci también es muy interesante en su forma recursiva. El siguiente algoritmo de la serie de Fibonacci en Java devuelve el número de la secuencia según la posición recibida por parámetro:
private int sucesionFibonacciRecursiva(int posicionSeleccionada)
{
if (posicionSeleccionada > 1)
{
return sucesionFibonacciRecursiva(posicionSeleccionada-1) + sucesionFibonacciRecursiva(posicionSeleccionada-2);
}
else if (posicionSeleccionada == 1)
{
return 1;
}
else if (posicionSeleccionada == 0)
{
return 0;
}
else
{
System.out.println("El número introducido debe ser mayor o igual a 1");
return -1;
}
}
Propiedades de la serie de Fibonacci
- El cociente entre dos números consecutivos es una aproximación del número áureo.
- Cualquier número natural puede escribirse a partir de la suma de varios elementos de esta sucesión.
- Solamente un término de cada 3 es divisible por 2.
- Asimismo, únicamente es divisible por 3 un número de cada cuatro.
- Además, solo uno de cada cinco es múltiplo de 5.
Número áureo
Como hemos comentado, cuando dividimos cualquier número de la serie por el anterior, se obtiene una aproximación al número áureo, es decir, aproximadamente 1,61803. Hay elementos de la naturaleza que guardan la proporción áurea, entre estos bellos elementos podemos encontrar: conchas de moluscos, piñas, flores de alcachofas, etc.
Otros algoritmos matemáticos en Java
| Algoritmo | Descripción |
| Sucesión de Fibonacci | Aprende a programar en Java la famosa sucesión de Fibonacci |
| Números Primos | Algoritmo de cálculo en Java para saber si un número es primo |
| Factorial | Cálculo del factorial de un número en Java |
| Número Pi | Aprende a calcular Pi en Java |
| Número e | Número e, algoritmo en Java |
| Raíz cuadrada | Desarrollo en Java del algoritmo raíz cuadrada |
| Números Perfectos | Determina en Java si un número es “perfecto” |
| Conversión binario – hexadecimal | Conversor binario a hexadecimal en Java |
| Generación de números aleatorios | Generar números aleatorios entre 1 y 100, ejemplos prácticos |
| Matrices en Java | Crea una matriz en Java y manéjala con soltura |
| Calculadora en Java | Ejemplo sencillo para montar una calculadora en java con interfaz básica |
Recursos básicos Java
| Asunto | Descripción |
| Tutorial básico y sintaxis | Tutorial básico Java y sintaxis. Aprende los fundamentos del lenguaje. |
| Hilos (Threads) | Aprende a manejar hilos y las cuestiones básicas de la concurrencia |
| Funciones Lambda | Aquí te enseñamos las nociones más importantes para arrancas con funciones lambda |
| Palíndromos | Programa de ejemplo para el uso de palíndromos en Java. |
| Máquina Virtual de Java | Te explicamos el funcionamiento de la máquina virtual de java (Java Virtual Machine – JVM) |
| JDK, JRE y JVM | Diferencias entre el JDK, JRE y JVM. |
| Mejores libros Java en Español | Hazte con los mejores libros Java para aprender paso a paso y profundizar en las mejores prácticas |
| TensorFlow | Manejo del API de TensorFlow para la construcción de grafos de operaciones y su ejecución |
| Tutorial Log4j | Tutorial para el manejo de Log4j, herramienta ágil y flexible para la gestión de Logs en Java |
| Java Security | Entiende y aplica las posibilidades que da Java para mantener la seguridad |
| Tutorial JConsole | Aprende los conceptos básicos de monitorización de procesos Java con JConsole |
| JavaFX | Tutorial de JavaFX, librería gráfica moderna para construcción de GUIs en móvil, escritorio y web. |
| Estructuras de datos en Java | Explicación y ejemplos de las estructuras de datos más importantes: listas, pila, cola, arbol. |
| Javaapi | Conjunto de clases, interfaces, métodos y paquetes que forman parte de la plataforma Java estándar |
| Algoritmo Huffman | Método eficiente para codificar datos, asignando códigos más cortos a los caracteres más frecuentes |