Série Fibonacci en Java utilisant le programme de récursion et de boucles

Qu’est-ce que la série de Fibonacci en Java ?

A Série Fibonacci en Java est une série de nombres dans laquelle le nombre suivant est la somme des deux nombres précédents. Les deux premiers nombres de la série de Fibonacci sont 0 et 1. Les nombres de Fibonacci sont utilisés de manière significative dans l'étude informatique d'exécution d'un algorithme pour déterminer le plus grand diviseur commun de deux nombres entiers.

En arithmétique, le tableau de Wythoff est une matrice infinie de nombres résultant de la séquence de Fibonacci.

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

Programme de la série Fibonacci en Java utilisant la boucle For

//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;
	        }
	}
}

Sortie :

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

Logique du programme :

  • previousNumber est initialisé à 0 et nextNumber est initialisé à 1
  • La boucle For de Fibonacci parcourt maxNumber
    • Afficher le numéro précédent
    • Calcule la somme de previousNumber et nextNumber
    • Met à jour les nouvelles valeurs de previousNumber et nextNumber

Programme de la série Fibonacci en Java utilisant la boucle While

Vous pouvez également générer une série Java Fibonacci à l'aide d'un While boucle dans 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++;
	        }
 
	}
 
}

Sortie :

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

La seule différence dans la logique du programme est l'utilisation de Boucle WHILE imprimer les nombres de Fibonacci

Série de Fibonacci basée sur la saisie de l'utilisateur

//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;
	        }
 
	}
 
}

Logique du programme :
La logique est la même que précédemment. Au lieu de coder en dur le nombre d'éléments à afficher dans la série Java Fibonacci, il est demandé à l'utilisateur d'écrire un nombre.

Série Fibonacci utilisant la récursion en Java

Vous trouverez ci-dessous un programme de la série Fibonacci en Java utilisant la récursion :

//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) +" ");
		}
	}
}


Sortie :

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

Logique du programme :

Une fonction récursive est une fonction qui a la capacité de s'appeler elle-même.

fibonacciRecursion() :

  1. La fonction de récursion Java Fibonacci prend un nombre d'entrée. Vérifie 0, 1, 2 et renvoie 0, 1, 1 en conséquence car la séquence de Fibonacci en Java commence par 0, 1, 1.
  2. Lorsque l'entrée n est >=3, la fonction s'appellera de manière récursive. L'appel est effectué deux fois. Voyons la série de Fibonacci en Java en utilisant un exemple de récursion pour la saisie 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

Le résultat est maintenant ajouté 0+1+1+0+1=3