La capacità di pensare in modo ricorsivo è molto importante per gli sviluppatori di software . Una routine software ricorsiva ripete da solo riferimento ad un certo punto . Tale procedura ha un caso base che termina la ricorsione e impedisce la routine di effettuare, a tempo indeterminato. La maggior parte dei programmatori di imparare a codificare la sequenza di Fibonacci quando imparano ricorsione . Una simile serie di numeri è la serie Lucas , e può essere risolto in modo ricorsivo pure. La serie Lucas inizia con i numeri 2 e 1 . Ogni successivo numero della serie è la somma dei due precedenti - per esempio, il terzo numero è 3 ( 1 +2 ) , seguito da 4 ( 3 +1 ) , seguito da 7 ( 4 +3 ) , e così via . Cose che ti serviranno
C + + Compiler , come
GCC C + + IDE come Eclipse CDT
Show More Istruzioni
1
Avviare il C + + IDE e di creare un nuovo C + + file di codice sorgente .
2
Creare una funzione di nome Lucas . La parte principale del programma sarà sfamare lucas un numero , e si aspettano lucas passare un certo numero di nuovo esso . Questa sintassi si ottiene scrivendo qualcosa di simile a questo :
int lucas ( int x ) per
{
}
3
il primo caso base . Il primo caso base si verifica quando il numero di ingresso nella funzione di lucas è 0 . Il risultato di questa emetta il valore 2 principale. È possibile ottenere questo risultato con l'aggiunta di un "if" all'interno delle parentesi graffe della funzione lucas , come questo:
if ( x == 0 ) {return 2; }
4
configurare il secondo caso base . Il secondo caso base si verifica quando il numero di ingresso nella funzione di lucas è 1 . Il risultato di questa emetta il valore 1 al principale. È possibile scrivere questa " altra cosa - se " dichiarazione come questa , al di sotto della "if" dal punto 3 :
else if ( x == 1) { return 1; }
5 < p > Impostare la chiamata ricorsiva . Questa chiamata chiamerà la funzione lucas sé altre due volte , aggiungendo il risultato delle due precedenti risultati della serie Lucas insieme . Questa chiamata ricorsiva può apparire così , e va sotto l'istruzione " if-else " al punto 4 :
else { ritornare lucas ( x - 1 ) + lucas ( x - 2) ; }
6
Chiama lucas nella funzione principale . Potrai inserire la tua funzione principale di sotto della funzione di lucas finito , al di fuori delle sue parentesi graffe. L'intera funzione principale dovrebbe assomigliare a questa :
int main ( ) per
{int y = lucas ( 7) ; cout << y << endl; return 0; }
7
compilare ed eseguire questo programma ( molti ambienti di sviluppo di realizzare questo premendo F5 ) . L'output del programma sarà i primi otto numeri della serie Lucas : . 2, 1 , 3, 4 , 7, 11 , 18, 29