Rekursive Funktionen, Die Mit Fibonacci-Reihe

Bin ich selbst-lernen C++ von Sams Teach Yourself C++ In Einer Stunde Ein Tag und auf Seite 150 der Autor beschreibt rekursive Funktionen mit Hilfe der Fibonacci-Reihe.

Er verwendet den folgenden code:

#include <iostream>
using namespace std;

int GetFibNumber(int FibIndex)
{
    if(FibIndex < 2 )
        return FibIndex;
    else
        return GetFibNumber(FibIndex - 1) + GetFibNumber(FibIndex - 2);
}

int main()
{
    cout << " Enter 0 based index of desired Fibonacci Number: ";
    int Index = 0;
    cin >> Index;

    cout << " Fibonacci number is: " << GetFibNumber(Index) << endl;

    return 0;

}

Was ist der Unterschied zwischen

zurück GetFibNumber(FibIndex - 1) + GetFibNumber(FibIndex - 2);

und

zurück FibIndex - 1 + FibIndex - 2;

Warum haben Sie zum Aufruf der Funktion in sich selbst?

Vielen Dank im Voraus!

  • Könntest du bitte ein Beispiel geben, was du hast, und erläutern Sie Ihre Frage deutlicher.
  • Was bedeutet die Linie 9 jetzt Lesen? Ohne diese beiden Funktion Aufrufe, es wird nicht die Berechnung der Fibonacci-Folge.
  • Bitte werfen Sie einen Blick auf, was die Fibonacci-Reihe ist en.wikipedia.org/wiki/Fibonacci_number Ohne die Letzte GetFibNumber(FibIndex - 1) + GetFibNumber(FibIndex - 2) Berechnung ist falsch.
  • Ja, ich bin mir bewusst, dass. Ich einfach entfernt "GetFibNumber" in der Zeile, die Sie gerade kopiert und eingefügt werden.
  • Es wird funktionieren, solange der input-parameter FibIndex ist klein (< 4). 10 nehmen zum Beispiel. Die 10 fibonnaci-Nummer 34. Aber mit deiner Berechnung, die Sie erhalten (10-1 + 10 -2 = 17)
  • Ich habe aktualisiert die Frage. Das einzige, was ich angepasst, in meiner version war return FibIndex - 1 + FibIndex - 2;

InformationsquelleAutor JOG-Design | 2013-12-17
Schreibe einen Kommentar