Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Fibonacci-Folge in Java generieren: For-, While- und Rekursions-Beispiele

Was ist die Fibonacci-Folge in Java?

Fibonacci-Folge ist eine Sequenz, bei der jede Zahl die Summe der beiden vorhergehenden ist. In Java beginnt die Folge traditionell mit 0 und 1:

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

Abgesehen von ihrer mathematischen Faszination wird die Fibonacci-Folge häufig in der Algorithmenanalyse verwendet – beispielsweise zur Abschätzung der Laufzeit rekursiver Verfahren und zur Berechnung des größten gemeinsamen Teilers.

  • For-Schleifen-Implementierung
  • While-Schleifen-Implementierung
  • Rekursive Implementierung
  • Interaktives Eingabe-Beispiel

Fibonacci-Folge mit For-Schleife

// Mit for-Schleife
public class FibonacciBeispiel {
    public static void main(String[] args) {
        int anzahlGlieder = 10; // Anzahl der Glieder
        int vorherige = 0;
        int aktuelle = 1;
        System.out.print("Fibonacci-Folge von " + anzahlGlieder + " Zahlen:");
        for (int i = 1; i <= anzahlGlieder; i++) {
            System.out.print(vorherige + " ");
            int naechste = vorherige + aktuelle;
            vorherige = aktuelle;
            aktuelle = naechste;
        }
    }
}

Ausgabe:

Fibonacci-Folge von 10 Zahlen: 0 1 1 2 3 5 8 13 21 34

Logik:

  • Initialisieren Sie vorherige = 0 und aktuelle = 1.
  • Schleife anzahlGlieder-mal, geben Sie vorherige aus und aktualisieren Sie die Werte.

Fibonacci-Folge mit While-Schleife

// Mit while-Schleife
public class FibonacciWhileBeispiel {
    public static void main(String[] args) {
        int anzahlGlieder = 10;
        int vorherige = 0;
        int aktuelle = 1;
        System.out.print("Fibonacci-Folge von " + anzahlGlieder + " Zahlen:");
        int i = 1;
        while (i <= anzahlGlieder) {
            System.out.print(vorherige + " ");
            int naechste = vorherige + aktuelle;
            vorherige = aktuelle;
            aktuelle = naechste;
            i++;
        }
    }
}

Ausgabe:

Fibonacci-Folge von 10 Zahlen: 0 1 1 2 3 5 8 13 21 34

Fibonacci-Folge basierend auf Benutzereingabe

import java.util.Scanner;
public class FibonacciBenutzereingabe {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Geben Sie die Anzahl der Glieder ein: ");
        int anzahlGlieder = scanner.nextInt();
        int vorherige = 0;
        int aktuelle = 1;
        System.out.print("Fibonacci-Folge von " + anzahlGlieder + " Zahlen:");
        for (int i = 1; i <= anzahlGlieder; i++) {
            System.out.print(vorherige + " ");
            int naechste = vorherige + aktuelle;
            vorherige = aktuelle;
            aktuelle = naechste;
        }
        scanner.close();
    }
}

Logik: Dieselbe iterative Logik, aber die Gliederanzahl wird vom Benutzer vorgegeben.

Fibonacci-Folge mit Rekursion

// Rekursive Implementierung
public class FibonacciRekursion {
    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 anzahlGlieder = 10;
        System.out.print("Fibonacci-Folge von " + anzahlGlieder + " Zahlen: ");
        for (int i = 0; i < anzahlGlieder; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
}

Ausgabe:

Fibonacci-Folge von 10 Zahlen: 0 1 1 2 3 5 8 13 21 34

Rekursion erklärt:

  1. Basisfälle: n == 0 gibt 0 zurück; n == 1 || n == 2 gibt 1 zurück.
  2. Rekursiver Fall: fibonacci(n) = fibonacci(n-1) + fibonacci(n-2).
  3. Jeder Aufruf spaltet sich in zwei Unteraufrufe, was der klassischen Definition entspricht.

Während Rekursion einen sauberen mathematischen Ausdruck bietet, verursacht sie für große n exponentielle Laufzeit. Nutzen Sie Memoisierung oder iterative Methoden für performance-kritischen Code.

Java

  1. Java Hello World: Ihr erstes Programm
  2. Java Variablen und Literale: Umfassender Leitfaden
  3. Java Ausdrücke, Anweisungen und Blöcke verstehen
  4. Java Klassen und Objekte: Praktischer Leitfaden
  5. Java abstrakte Klassen und Methoden: Ein umfassender Leitfaden
  6. Java verschachtelte und innere Klassen meistern: Typen, Beispiele und Best Practices
  7. Java throw vs. throws: Exception Handling mit praktischen Beispielen meistern
  8. Java Autoboxing und Unboxing meistern: Praktische Beispiele und Best Practices
  9. Java-Programm zur Prüfung, ob eine Zahl prim ist
  10. Java-Programm zur Identifikation von Armstrong-Zahlen mit For-Schleife