Come scrivere un codice in C ++ utilizzando Lucas Series

July 18

La capacità di pensare in modo ricorsivo è molto importante per gli sviluppatori di software. Un software ricorsiva ripete di routine di per sé fa riferimento ad un certo punto. Tale procedura ha un caso base che termina la ricorsione e impedisce la routine da portare avanti a tempo indeterminato. La maggior parte dei programmatori imparare come codificare la sequenza di Fibonacci quando vengono a sapere la 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 numero successivo nella serie è la somma dei due precedenti - per esempio, il terzo numero è 3 (1 + 2), seguito da 4 (3 + 1), seguita da 7 (4 + 3), e così via.

istruzione

1 Avviare il IDE C ++ e creare un nuovo file di codice sorgente C ++.

2 Creare una funzione di nome Lucas. La parte principale del programma alimenterà lucas un numero, e si aspettano lucas di passare un numero di nuovo esso. Questa sintassi si ottiene scrivendo qualcosa di simile:

int Lucas (int x)

{

}

3 Impostare il primo caso base. Il primo caso base si verifica quando l'ingresso numero nella funzione di Lucas è 0. Il risultato di questo è l'output il valore 2 al principale. È possibile raggiungere questo obiettivo con l'aggiunta di un "if" all'interno delle parentesi graffe della funzione Lucas, in questo modo:

if (x == 0) {return 2; }

4 Impostare il secondo caso base. Il secondo caso base si verifica quando l'ingresso numero nella funzione di Lucas è 1. Il risultato di questo è l'output il valore 1 al principale. È possibile scrivere questo "altro-if" in questo modo, al di sotto del "if" dal punto 3:

else if (x == 1) {return 1; }

5 Impostare la chiamata ricorsiva. Questa chiamata chiamerà la funzione lucas sé altre due volte, aggiungendo il risultato delle due precedenti risultati nella serie Lucas insieme. Questa chiamata ricorsiva può assomigliare a questo, e va sotto l'affermazione "if-else" al punto 4:

else {ritorno Lucas (x - 1) + Lucas (x - 2); }

6 Chiamare lucas nella funzione principale. Metterete la vostra funzione principale sotto la funzione lucas finito, al di fuori delle sue parentesi graffe. L'intera funzione principale dovrebbe essere simile a questo:

int main ()

{int y = Lucas (7); cout << y << endl; return 0; }

7 Compilare ed eseguire questo programma (molti ambienti di sviluppo realizzare questo premendo F5). L'output del programma sarà i primi otto numeri della serie Lucas: 2, 1, 3, 4, 7, 11, 18, 29.

Consigli e avvertenze

  • Questo programma è estremamente inefficiente per essere semplice. Grandi numeri genereranno molte migliaia di chiamate ricorsive identiche. Memorizzando i risultati come il programma procede, può essere reso molto più efficiente.