Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Generar Secuencia Fibonacci en Java: Ejemplos con For, While y Recursión

¿Qué es la Serie Fibonacci en Java?

La serie de Fibonacci es una secuencia donde cada número es la suma de los dos anteriores. En Java, la serie comienza tradicionalmente con 0 y 1:

0, 1, 1, 2, 3, 5, 8, 13, 21, …

Más allá de su interés matemático, la secuencia de Fibonacci se usa frecuentemente en análisis de algoritmos —por ejemplo, para estimar el tiempo de ejecución de procedimientos recursivos y en el cálculo del máximo común divisor.

Serie Fibonacci Usando Bucle For

// Usando bucle for
public class EjemploFibonacci {
    public static void main(String[] args) {
        int maxNumero = 10; // Número de términos
        int anterior = 0;
        int actual = 1;
        System.out.print("Serie Fibonacci de " + maxNumero + " números:");
        for (int i = 1; i <= maxNumero; i++) {
            System.out.print(anterior + " ");
            int siguiente = anterior + actual;
            anterior = actual;
            actual = siguiente;
        }
    }
}

Salida:

Serie Fibonacci de 10 números: 0 1 1 2 3 5 8 13 21 34

Lógica:

Serie Fibonacci Usando Bucle While

// Usando bucle while
public class EjemploFibonacciWhile {
    public static void main(String[] args) {
        int maxNumero = 10;
        int anterior = 0;
        int actual = 1;
        System.out.print("Serie Fibonacci de " + maxNumero + " números:");
        int i = 1;
        while (i <= maxNumero) {
            System.out.print(anterior + " ");
            int siguiente = anterior + actual;
            anterior = actual;
            actual = siguiente;
            i++;
        }
    }
}

Salida:

Serie Fibonacci de 10 números: 0 1 1 2 3 5 8 13 21 34

Serie Fibonacci Basada en Entrada del Usuario

import java.util.Scanner;
public class FibonacciEntradaUsuario {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Ingrese el número de términos: ");
        int maxNumero = scanner.nextInt();
        int anterior = 0;
        int actual = 1;
        System.out.print("Serie Fibonacci de " + maxNumero + " números:");
        for (int i = 1; i <= maxNumero; i++) {
            System.out.print(anterior + " ");
            int siguiente = anterior + actual;
            anterior = actual;
            actual = siguiente;
        }
        scanner.close();
    }
}

Lógica: Se aplica la misma lógica iterativa, pero el número de términos lo proporciona el usuario.

Serie Fibonacci Usando Recursión

// Implementación recursiva
public class FibonacciRecursion {
    public static int fibonacci(int n) {
        if (n == 0) return 0;
        if (n == 1 || n == 2) return 1;
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
    public static void main(String[] args) {
        int maxNumero = 10;
        System.out.print("Serie Fibonacci de " + maxNumero + " números: ");
        for (int i = 0; i < maxNumero; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
}

Salida:

Serie Fibonacci de 10 números: 0 1 1 2 3 5 8 13 21 34

Explicación de la Recursión:

  1. Casos base: n == 0 devuelve 0; n == 1 || n == 2 devuelve 1.
  2. Caso recursivo: fibonacci(n) = fibonacci(n-1) + fibonacci(n-2).
  3. Cada llamada se divide en dos sub-llamadas, reflejando la definición clásica.

Aunque la recursión ofrece una expresión matemática limpia, incurre en tiempo exponencial para n grande. Use memoización o métodos iterativos para código crítico en rendimiento.

Java

  1. Java Hello World: Tu Primer Programa
  2. Variables y Literales en Java: Guía Completa
  3. Entender Expresiones, Sentencias y Bloques en Java
  4. Clases y Objetos en Java: Guía Práctica
  5. Clases y métodos abstractos en Java: Guía completa
  6. Dominando clases anidadas e internas en Java: Tipos, ejemplos y mejores prácticas
  7. Java throw vs throws: Dominando el manejo de excepciones con ejemplos prácticos
  8. Dominando Autoboxing y Unboxing en Java: Ejemplos Prácticos y Mejores Prácticas
  9. Programa en Java para Determinar si un Número es Primo
  10. Programa en Java para Identificar Números de Armstrong Usando Bucle For
  11. Invertir una Cadena en Java Usando Recursión – Guía Paso a Paso