Serie de Fibonacci en Java usando el programa de recursión y bucles

¿Qué es la serie de Fibonacci en Java?

A Serie de Fibonacci en Java es una serie de números en la que el siguiente número es la suma de los dos números anteriores. Los dos primeros números de la serie de Fibonacci son 0 y 1. Los números de Fibonacci se utilizan significativamente en el estudio computacional en tiempo de ejecución de un algoritmo para determinar el máximo común divisor de dos números enteros.

En aritmética, la matriz de Wythoff es una matriz infinita de números resultantes de la secuencia de Fibonacci.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...

Programa de la serie Fibonacci en Java usando For Loop

//Using  For Loop
public class FibonacciExample {
	public static void main(String[] args) 
	{
		// Set it to the number of elements you want in the Fibonacci Series
		 int maxNumber = 10; 
		 int previousNumber = 0;
		 int nextNumber = 1;
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
	        for (int i = 1; i <= maxNumber; ++i)
	        {
	            System.out.print(previousNumber+" ");
	            /* On each iteration, we are assigning second number
	             * to the first number and assigning the sum of last two
	             * numbers to the second number
	             */
 
	      
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	        }
	}
}

Salida:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Lógica del programa:

  • El número anterior se inicializa en 0 y el número siguiente se inicializa en 1.
  • El bucle For de Fibonacci recorre en iteración maxNumber
    • Mostrar el número anterior
    • Calcula la suma de anteriorNumber y nextNumber
    • Actualiza nuevos valores de anteriorNumber y nextNumber

Programa de la serie Fibonacci en Java usando While Loop

También puede generar la serie Java Fibonacci usando un While incluyete Java

//Using  While Loop
public class FibonacciWhileExample {
	public static void main(String[] args) 
	{
		 int maxNumber = 10, previousNumber = 0, nextNumber = 1;
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        int i=1;
	        while(i <= maxNumber)
	        {
	            System.out.print(previousNumber+" ");
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	            i++;
	        }
 
	}
 
}

Salida:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

La única diferencia en la lógica del programa es el uso de Mientras bucle imprimir números de Fibonacci

Serie de Fibonacci basada en la entrada del usuario

//fibonacci series based on the user input
import java.util.Scanner;
public class FibonacciExample {
 
	public static void main(String[] args) 
	{
	
		 int maxNumber = 0; 
		 int previousNumber = 0;
		 int nextNumber = 1;
		 
		    System.out.println("How many numbers you want in Fibonacci:");
	        Scanner scanner = new Scanner(System.in);
	        maxNumber = scanner.nextInt();
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        for (int i = 1; i <= maxNumber; ++i)
	        {
	            System.out.print(previousNumber+" ");
	            /* On each iteration, we are assigning second number
	             * to the first number and assigning the sum of last two
	             * numbers to the second number
	             */
 
	      
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	        }
 
	}
 
}

Lógica del programa:
La lógica es la misma que antes. En lugar de codificar la cantidad de elementos que se mostrarán en la serie Java Fibonacci, se le pide al usuario que escriba el número.

Serie de Fibonacci usando recursividad en Java

A continuación se muestra un programa de series de Fibonacci en Java que utiliza recursividad:

//Using Recursion
public class FibonacciCalc{
	public static int fibonacciRecursion(int n){
	if(n == 0){
		return 0;
	}
	if(n == 1 || n == 2){
			return 1;
		}
	return fibonacciRecursion(n-2) + fibonacciRecursion(n-1);
	}
    public static void main(String args[]) {
	int maxNumber = 10;
	System.out.print("Fibonacci Series of "+maxNumber+" numbers: ");
	for(int i = 0; i < maxNumber; i++){
			System.out.print(fibonacciRecursion(i) +" ");
		}
	}
}


Salida:

Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34

Lógica del programa:

Una función recursiva es aquella que tiene la capacidad de llamarse a sí misma.

Recursión de Fibonacci():

  1. La función recursiva de Java Fibonacci toma un número de entrada. Comprueba 0, 1, 2 y devuelve 0, 1, 1 en consecuencia porque la secuencia de Fibonacci en Java comienza con 0, 1, 1.
  2. Cuando la entrada n es >=3, la función se llamará a sí misma de forma recursiva. La llamada se realiza dos veces. Veamos la serie de Fibonacci en Java usando un ejemplo de recursividad para la entrada de 4.
fibonacciRecursion (4)  
	It will recursively call fibonacciRecursion function for values 2 and 3
		fibonacciRecursion (2) \\ call for value 0 and 1
			fibonacciRecursion (0) = 0
			fibonacciRecursion (1) = 1
		fibonacciRecursion (3) \\ It will call for 1 and 2
			fibonacciRecursion (1) = 1
			fibonacciRecursion (2) \\ It will call for 0 and 1
				fibonacciRecursion (0) = 0
				fibonacciRecursion (1) = 1

Ahora se suma el resultado 0+1+1+0+1=3