Evnen til at tænke rekursivt er meget vigtigt at softwareudviklere. En rekursiv software rutine gentager ved at referere sig på et tidspunkt. En sådan rutine har en base case , der slutter rekursionen og forhindrer rutine i at udøve ubestemt tid. De fleste programmører lære at kode Fibonacci Sequence , når de lærer rekursion . En lignende række tal er Lucas serien , og det kan løses rekursivt så godt . Den Lucas serien begynder med tallene 2 og 1. . Hver efterfølgende tal i rækken er summen af de to foregående - for eksempel er det tredje nummer 3 ( 1 +2 ) , efterfulgt af 4 ( 3 +1 ) , efterfulgt af 7 ( 4 +3 ) , og så videre . Ting du skal
C + + Compiler , som GCC
C + + IDE, såsom Eclipse CDT
Vis Flere Instruktioner
1
Start din C + + IDE og skabe en nye C + + kildekode -fil.
2
Opret en funktion ved navn lucas . Den væsentligste del af programmet, vil indgå lucas et tal , og forventer lucas at passere en række tilbage til den. Denne syntaks opnås ved at skrive noget som dette : Hej
int lucas ( int x )
{
}
3
Set op den første base case . Den første base case opstår, når antallet input til lucas funktionen er 0 . Resultatet af dette udsender værdien 2 til vigtigste . Du kan opnå dette ved at tilføje en "hvis" erklæring på indersiden af de krøllede parenteser i lucas funktion, som dette : Hej
if ( x == 0) {return 2 ;}
4
Opstil anden base sagen. Den anden base case opstår, når antallet input til lucas -funktionen er 1 . Resultatet af dette udsender værdien 1 til main . Du kan skrive denne " ellers hvis"- erklæring som dette, under "hvis" erklæring fra trin 3 : Hej
else if ( x == 1 ) {return 1 ;}
5 < p> Opsæt rekursive kald . Denne indkaldelse vil kalde lucas selve funktionen to gange mere , tilføjer resultatet af de to foregående resultater i Lucas Series sammen . Denne rekursivt kald kan se sådan ud , og går til under " if-else " erklæring i trin 4 : Hej
else { tilbage lucas (x - 1) + lucas ( x - 2 );}
< br > 6
Ring lucas i hovedfunktion. Du vil placere din vigtigste funktion under den færdige lucas funktion , uden for sine krøllede parenteser . Hele hovedfunktion skal se sådan ud : Hej
int main ()
{ int y = lucas (7); cout << y << endl; return 0 ;}
7
Kompiler og kør dette program ( mange udviklingsmiljøer opnå dette ved at trykke på F5) . Udgangen af programmet vil være de første otte numre i Lucas serien: . 2, 1, 3, 4 , 7, 11, 18 , 29