Rekursive Fibonacci-Sequenz in Java

Rashmi Patidar 12 Oktober 2023
  1. Fibonacci-Folge
  2. Rekursion
  3. Rekursive Fibonacci-Sequenz in Java
Rekursive Fibonacci-Sequenz in Java

Fibonacci-Folge

Eine Folge, die durch Addition der letzten beiden Zahlen ab 0 und 1 gebildet wird. Wenn man das n-te Element finden will, wird die Zahl durch Addition der Terme (n-1) und (n-2) gefunden. wobei n größer als 0 sein muss.

Rekursion

Rekursion ist der Prozess, bei dem sich dieselbe definitive Funktion oder Prozedur mehrmals aufruft, bis sie auf eine Beendigungsbedingung stößt. Wenn wir keine Abschlussbedingung angeben, tritt die Methode in einen Endlosschleifenzustand ein.

Rekursive Fibonacci-Sequenz in Java

In dem unten angegebenen Code ruft die Methode main() eine statische Funktion getFibonacciNumberAt() auf, die in der Klasse definiert ist. Die Funktion verwendet einen Parameter, der eine Zahl definiert, in der die Fibonacci-Zahl ausgewertet werden soll. Die Funktion verfügt über eine Primärprüfung, die 0 oder 1 zurückgibt, wenn die gewünschte Bedingung erfüllt ist. Andernfalls ruft sich die Funktion erneut auf, indem sie den an sie übergebenen Parameter dekrementiert.

package recursiveFibonacci;

public class RecursiveFibonacciSequence {
  public static void main(String[] args) {
    int fibonacciNumber = getFibonacciNumberAt(6);
    System.out.println(fibonacciNumber);
  }

  public static int getFibonacciNumberAt(int n) {
    if (n == 0)
      return 0;
    else if (n == 1)
      return 1;
    else
      return getFibonacciNumberAt(n - 1) + getFibonacciNumberAt(n - 2);
  }
}

Ausgabe:

8

Die detaillierte Bewertung ist unten zu sehen:

getFibonacciNumberAt(6) = getFibonacciNumberAt(5) + getFibonacciNumberAt(4); //5+3=8
getFibonacciNumberAt(5) = getFibonacciNumberAt(4) + getFibonacciNumberAt(3); //3+2=5
getFibonacciNumberAt(4) = getFibonacciNumberAt(3) + getFibonacciNumberAt(2); //2+1=3
getFibonacciNumberAt(3) = getFibonacciNumberAt(2) + getFibonacciNumberAt(1); //1+1=2
getFibonacciNumberAt(2) = getFibonacciNumberAt(1) + getFibonacciNumberAt(0); //1+0=1
If, getFibonacciNumberAt(1) = 1;
And getFibonacciNumberAt(0) = 0;

Wir können das obige Programm ändern, um eine Serie bis zur gewünschten Anzahl zu drucken.

package recursiveFibonacci;

public class RecursiveFibonacci {
  public static void main(String[] args) {
    int maxCount = 10;
    for (int i = 0; i <= maxCount; i++) {
      int fibonacciNumber = printFibonacci(i);
      System.out.print(" " + fibonacciNumber);
    }
  }

  public static int printFibonacci(int n) {
    if (n == 0)
      return 0;
    else if (n == 1)
      return 1;
    else
      return printFibonacci(n - 1) + printFibonacci(n - 2);
  }
}

Ausgabe:

0 1 1 2 3 5 8 13 21 34 55
Hinweis
Zur Berechnung größerer Zahlen können wir die Klasse BigInteger in Java verwenden. Der Rekursionsprozess ist für größere Zahlen komplex. daher wird auch die Rechenzeit für solche Zahlen länger sein.
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Verwandter Artikel - Java Math