Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Générer la suite de Fibonacci en Java : boucles for, while et récursivité

Qu'est-ce que la suite de Fibonacci en Java ?

La suite de Fibonacci est une séquence où chaque nombre est la somme des deux précédents. En Java, la suite commence traditionnellement par 0 et 1 :

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

Au-delà de son intérêt mathématique, la suite de Fibonacci est fréquemment utilisée en analyse d'algorithmes — par exemple pour estimer le temps d'exécution de procédures récursives et dans le calcul du PGCD.

Suite de Fibonacci avec une boucle for

// Utilisation d'une boucle for
public class ExempleFibonacci {
    public static void main(String[] args) {
        int maxNombre = 10; // Nombre de termes
        int precedent = 0;
        int courant = 1;
        System.out.print("Suite de Fibonacci de " + maxNombre + " nombres :");
        for (int i = 1; i <= maxNombre; i++) {
            System.out.print(precedent + " ");
            int suivant = precedent + courant;
            precedent = courant;
            courant = suivant;
        }
    }
}

Sortie :

Suite de Fibonacci de 10 nombres : 0 1 1 2 3 5 8 13 21 34

Logique :

Suite de Fibonacci avec une boucle while

// Utilisation d'une boucle while
public class FibonacciWhileExemple {
    public static void main(String[] args) {
        int maxNombre = 10;
        int precedent = 0;
        int courant = 1;
        System.out.print("Suite de Fibonacci de " + maxNombre + " nombres :");
        int i = 1;
        while (i <= maxNombre) {
            System.out.print(precedent + " ");
            int suivant = precedent + courant;
            precedent = courant;
            courant = suivant;
            i++;
        }
    }
}

Sortie :

Suite de Fibonacci de 10 nombres : 0 1 1 2 3 5 8 13 21 34

Suite de Fibonacci basée sur la saisie utilisateur

import java.util.Scanner;
public class FibonacciSaisieUtilisateur {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Entrez le nombre de termes : ");
        int maxNombre = scanner.nextInt();
        int precedent = 0;
        int courant = 1;
        System.out.print("Suite de Fibonacci de " + maxNombre + " nombres :");
        for (int i = 1; i <= maxNombre; i++) {
            System.out.print(precedent + " ");
            int suivant = precedent + courant;
            precedent = courant;
            courant = suivant;
        }
        scanner.close();
    }
}

Logique : La même logique itérative s'applique, mais le nombre de termes est fourni par l'utilisateur.

Suite de Fibonacci par récursivité

// Implémentation récursive
public class FibonacciRecursif {
    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 maxNombre = 10;
        System.out.print("Suite de Fibonacci de " + maxNombre + " nombres : ");
        for (int i = 0; i < maxNombre; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
}

Sortie :

Suite de Fibonacci de 10 nombres : 0 1 1 2 3 5 8 13 21 34

Explication de la récursivité :

  1. Cas de base : n == 0 retourne 0 ; n == 1 || n == 2 retourne 1.
  2. Cas récursif : fibonacci(n) = fibonacci(n-1) + fibonacci(n-2).
  3. Chaque appel se divise en deux sous-appels, reflétant la définition classique.

Bien que la récursivité offre une expression mathématique élégante, elle a une complexité exponentielle pour de grands n. Utilisez la mémoïsation ou les méthodes itératives pour du code critique en performance.

Java

  1. Java Hello World : Votre premier programme
  2. Variables et littéraux en Java : Guide complet
  3. Comprendre les expressions, instructions et blocs en Java
  4. Classes et objets en Java : Guide pratique
  5. Classes et méthodes abstraites en Java : guide complet
  6. Maîtriser les classes imbriquées et internes en Java : types, exemples et bonnes pratiques
  7. Java throw vs throws : maîtriser la gestion d'exceptions avec exemples pratiques
  8. Maîtriser l'autoboxing et l'unboxing Java : Exemples pratiques et bonnes pratiques
  9. Programme Java pour déterminer si un nombre est premier