Angenommen, ich habe die folgende rekursive Funktion, die die n-te Fibonacci-Zahl zurückgibt:ein Programm schreiben, um die Anzahl der rekursiven Aufrufe zählen
private int fib(int n) {
if(n == 1) return 0;
if(n == 2) return 1;
return fib(n - 1) + fib(n - 2);
}
Wie würde ich ein Stück Code schreiben die Gesamtzahl der rekursiven zurückzukehren Anrufe von dieser Funktion gemacht? Ich dachte über die Einführung eines Zählparameters wie in fib(int n, int count = 0)
oder einer statischen Variablen innerhalb als static int count = 0
und Inkrementierung direkt vor dem rekursiven Aufruf. Ich hatte keinen Erfolg mit einem dieser beiden Ansätze, da ich count
nicht zurückgeben konnte. Gibt es eine Möglichkeit, die Gesamtzahl der rekursiven Aufrufe zu erhalten, ohne die ursprüngliche Funktion zu ändern?
, was Sprache ist das? –
@Pamblam Java. –
Erklären Sie einfach den Zähler außerhalb der Funktion und erhöhen Sie ihn innerhalb der Funktion. Das ist ein schlecht geschriebener Algorithmus von Fibonacci .... –