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
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 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