C
Chri
Gast
Hallo !
Ich habe ein rekrusives Programm geschrieben das die Fibonaccizahl ausgibt, hier der Code:
Das Programm funktioniert einwandfrei, aber ich verstehe den Ablauf nicht.
Warum werden diese 2 Variablen nicht so lange überschrieben bis sie den Wert 1 haben ??
z.B. Wenn ich die f(4) will -> a = fibonacci (3); a = fibonacci (2); a = fibonacci (1) = 1;
Dann müsste doch immer 2 rauskommen (a+b).
Kann mir das jemand erklären oder hat jemand einen Link über diesen Algorithmus ?
lg Chris
Ich habe ein rekrusives Programm geschrieben das die Fibonaccizahl ausgibt, hier der Code:
Code:
public static int fibonacci (int n) {
if (n == 0 || n == 1) return 1;
else {
int a = fibonacci (n-1);
int b = fibonacci (n-2);
int y = a+b;
return y;
}
Das Programm funktioniert einwandfrei, aber ich verstehe den Ablauf nicht.
Code:
int a = fibonacci (n-1);
int b = fibonacci (n-2);
Warum werden diese 2 Variablen nicht so lange überschrieben bis sie den Wert 1 haben ??
z.B. Wenn ich die f(4) will -> a = fibonacci (3); a = fibonacci (2); a = fibonacci (1) = 1;
Dann müsste doch immer 2 rauskommen (a+b).
Kann mir das jemand erklären oder hat jemand einen Link über diesen Algorithmus ?
lg Chris