Die Fähigkeit zu denken rekursiv ist sehr wichtig für Software-Entwickler. Eine rekursive Software-Routine wiederholt durch Verweis auf sich selbst an einem gewissen Punkt . Eine solche Routine hat eine Basis , die den Fall Rekursion endet und verhindert, dass die Routine an der Ausübung auf unbestimmte Zeit. Die meisten Programmierer lernen, wie man die Fibonacci -Folge, Code , wenn sie Rekursion lernen . Eine ganz ähnliche Reihe von Zahlen ist der Lucas -Serie , und es kann rekursiv als auch gelöst werden. Die Lucas Series beginnt mit den Zahlen 2 und 1 . Jede weitere Zahl in der Reihe die Summe der beiden vorangegangenen - zum Beispiel die dritte Zahl 3 (1 +2), gefolgt von 4 (3 +1) , um 7 (4 +3) gefolgt , und so weiter . Was Sie brauchen
C + + Compiler, wie GCC
C + + IDE , wie Eclipse CDT
anzeigen Weitere Anweisungen
1
Starten Sie Ihre C + +-IDE und erstellen neue C + + -Quellcode-Datei .
2
erstellen Sie eine Funktion mit dem Namen Lucas . Der Hauptteil des Programms füttern lucas eine Nummer, und erwarten, dass Lucas eine Reihe zurück an ihn .
Int lucas (int x ) {
}
3
Set: Diese Syntax wird durch das Schreiben so etwas wie dies erreicht bis die erste Base Case . Der erste Fall tritt ein , wenn Basis die Zahl Eingang in die Lucas -Funktion 0 ist. Die Folge davon ist die Ausgabe des Wert 2 Main. Sie können dies , indem ein "if" -Anweisung, um das Innere der geschweiften Klammern des Lucas -Funktion , wie dies zu tun :
if ( x == 0 ) {return 2 ;}
4
die zweite Base-Case- Set . Der zweite Fall tritt ein , wenn Basis die Zahl Eingang in die Lucas -Funktion 1 ist. Die Folge davon ist, Ausgeben des Werts 1 bis main. Sie können schreiben, dieses " else-if "-Anweisung wie diese, unter die " if"-Anweisung ab Schritt 3 :
else if ( x == 1 ) {return 1;}
5 < p> den rekursiven Aufruf Set . Dieser Aufruf ruft die lucas Funktion selbst noch zwei weitere Male und fügte hinzu, das Ergebnis der letzten beiden Ergebnisse in der Lucas -Serie zusammen . Dieser rekursive Aufruf kann wie folgt aussehen , und geht unter dem " if-else "-Anweisung in Schritt 4:
else {return Lucas ( x - 1 ) + Lucas (x - 2 );}
6
Anruf Lucas in der Hauptfunktion . Sie werden Ihre Hauptfunktion unterhalb der fertigen lucas Funktion platzieren , außerhalb seiner geschweiften Klammern . Die gesamte Hauptfunktion sollte wie folgt aussehen :
int main () {int
y = Lucas (7); cout << y << endl; return 0; }
7
Kompilieren und ausführen dieses Programm (viele Entwicklungsumgebungen erreichen dies durch Drücken der Taste F5 ) . Die Ausgabe des Programms werden die ersten acht Zahlen in der Lucas -Serie sein : . 2, 1, 3, 4, 7, 11, 18, 29