Het vermogen om te denken recursief is zeer belangrijk voor ontwikkelaars . Een recursieve software routine herhaalt door te verwijzen naar zichzelf op een bepaald punt . Zo'n routine heeft een basisscenario dat de recursie eindigt en voorkomt dat de routine uit te oefenen voor onbepaalde tijd . De meeste programmeurs leren hoe de Fibonacci-reeks te coderen als ze leren recursie . Een soortgelijke reeks van getallen is de Lucas Series , en kan recursief goed worden opgelost . De Lucas serie begint met de nummers 1 en 2 . Elke volgende nummer in de reeks is de som van de twee voorgaande - bijvoorbeeld het derde nummer 3 ( 1 +2 ) , gevolgd door 4 ( 3 +1 ) , gevolgd door 7 ( 4 +3 ) , enzovoort . Wat je nodig hebt C + + Compiler , zoals GCC C + + IDE , zoals Eclipse CDT Toon Meer Aanwijzingen 1 Start uw C + + IDE en maak een nieuwe C + + -broncode bestand . kopen van 2 Maak een functie met de naam lucas . Het hoofddeel van het programma zal voeden lucas verschillende , en verwachten Lucas een aantal terugstromen naar het. Deze syntaxis wordt bereikt door het schrijven van iets als dit : int lucas ( int x ) op { } Set 3 de eerste base case . De eerste base case doet zich voor wanneer het aantal input in het lucas functie is 0 . Het resultaat hiervan is het uitvoeren van de waarde 2 tot belangrijkste . U kunt dit doen door het toevoegen van een " if" statement aan de binnenkant van de accolades van de lucas functie , zoals deze : if ( x == 0 ) { return 2 ; } 4 Stel de tweede base case . Het tweede honk geval doet zich voor wanneer het aantal input in het lucas functie is 1 . Het resultaat hiervan is het uitvoeren van de waarde 1 tot de belangrijkste . U kunt schrijven dit " anders - if" statement als dit, onder de " if" statement uit stap 3 : else if ( x == 1 ) { return 1 ; } 5 Stel de recursieve aanroep . Deze oproep zal de lucas functie zelf nog twee keer bellen , het toevoegen van het resultaat van de vorige twee resultaten in het Lucas -serie samen . Deze recursieve oproep kan er als volgt uitzien , en gaat onder de ' if-else " statement in stap 4 : else { terug lucas ( x - 1 ) + lucas ( x - 2 ) ; } < br Bellen> 6 lucas in de belangrijkste functie . U zal uw belangrijkste functie plaatst onder het afgewerkte lucas functie , buiten zijn accolades . De gehele hoofdfunctie moet er zo uitzien : int main ( ) op { int y = lucas ( 7 ) ; cout << y << endl ; return 0 ; } 7 compileren en uitvoeren van dit programma ( veel ontwikkelomgevingen dit te bereiken door op F5 te drukken ) . De output van het programma zal de eerste acht nummers in de Lucas -serie : . 2 , 1 , 3 , 4 , 7 , 11 , 18 , 29
|