Förmågan att tänka rekursivt är mycket viktigt att programvaruutvecklare . En rekursiv mjukvarurutin upprepar genom att referera till sig själv någon gång . En sådan rutin har ett basfall som avslutar rekursion och förhindrar rutinen från att fortsätta på obestämd tid . De flesta programmerare lära sig att koda Fibonacci Sequence när de lär rekursion . En snarlik serie siffror är Lucas -serien , och det kan lösas rekursivt också. Den Lucas Serien börjar med siffrorna 2 och 1 . Varje efterföljande nummer i serien är summan av de två föregående - till exempel är den tredje siffran 3 ( 1 2 ), följt av 4 ( 3 1 ), följt av 7 ( 4 +3), och så vidare . Saker du behöver
C + + kompilator , såsom GCC
C + + IDE , såsom Eclipse CDT
Visa fler instruktioner
1
Starta din C + + IDE och skapa en ny C + + -källkod -fil .
2
Skapa en funktion som heter Lucas. Den största delen av programmet kommer att utgöra lucas ett nummer , och förväntar lucas att passera ett antal tillbaka till den . Denna syntax åstadkoms genom att skriva något i stil med detta :
int lucas ( int x ) katalog
{
}
3
Set upp det första basfallet . Den första basen fallet inträffar när antalet bidrag till lucas funktionen är 0 . Resultatet av detta är att utmatning av värdet 2 to main . Du kan åstadkomma detta genom att lägga till ett "om " uttalande till insidan av klammerparenteser av lucas -funktionen , som den här :
if ( x == 0 ) {return 2 ;}
4
Ställ in den andra basen fallet . Den andra basen fallet inträffar när antalet bidrag till lucas funktionen är 1 . Resultatet av detta matar ut värdet 1 to main . Du kan skriva det här " annars - om " uttalande som detta , under " om " uttalande från steg 3 :
else if ( x == 1 ) {return 1 ;}
5
Ställ in det rekursiva anropet . Denna inbjudan kommer att ringa lucas själva funktionen två gånger , lägga till resultatet av de två tidigare resultat i Lucas -serien tillsammans . Denna rekursivt anrop kan se ut så här , och går under " if-else " uttalande i steg 4 :
annars {return lucas ( x - 1 ) + Lucas ( x - 2 ) ;}
6
Call lucas i huvudfunktionen . Du kommer att placera din huvudsakliga funktion nedanför den färdiga lucas funktionen , utanför dess klammerparenteser . Hela huvuduppgift bör se ut så här :
main
int ( ) katalog
{ int y = Lucas ( 7 ) ; cout << y << endl; återvända 0 ; }
7
kompilera och exekvera detta program ( många utvecklingsmiljöer åstadkomma detta genom att trycka på F5 ) . Utgången av programmet kommer att vara de första åtta siffrorna i Lucas -serien : . 2 , 1 , 3 , 4 , 7, 11 , 18 , 29