English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo articolo, imparerai a creare funzioni ricorsive. Le funzioni che si chiamano.
che si chiamaFunzioneChiamata funzione. E questa tecnica si chiama ricorsione.
void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... }
La seguente immagine mostra come avviene la ricorsione.
La ricorsione continua fino a quando si soddisfano alcune condizioni.
Per prevenire la ricorsione infinita, può essere utilizzato in una branca per chiamare ricorsivamente mentre nell'altra non lo fa.if ... else statement(o metodo simile).
// Il fattoriale di n = 1*2*3*...*n #include <iostream> using namespace std; int factorial(int); int main() { int n; cout << "Inserisci un numero per trovare il fattoriale: "; cin >> n; cout << "Il numero " << n << " del fattoriale = " << factorial(n); return 0; } int factorial(int n) { if (n > 1) { return n*factorial(n-1); } else { return 1; } }
Risultato dell'output
Inserisci un numero per trovare il fattoriale: 4 Il fattoriale del numero 4 = 24
Supponiamo che l'utente abbia inserito 4 e lo passi a questa funzione factorial().
Nel primo factorial() funzione, testareif statementAll'interno di true espressione. Esegui la frase return num*factorial(num-1); che chiama il secondo factorial() funzione, il parametro passato è num-1 che è 3.
Nel secondo factorial() funzione, testare l'espressione all'interno di if statement true. Esegui la frase return num*factorial(num-1); che chiama il terzo factorial() funzione, il parametro passato è num-1 che è 2.
Nel terzo factorial() funzione, testare l'espressione all'interno di if statement true. Esegui la frase return num*factorial(num-1); che chiama il quarto factorial() funzione, e il parametro passato è num-1 che è 1.
Nella quarta funzione factorial(), l'espressione all'interno del test if false viene eseguita, viene eseguita la语句 return 1; e viene restituito 1 alla terza funzione factorial().
La terza funzione factorial() restituisce 2 alla seconda funzione factorial().
La seconda funzione factorial() restituisce 6 alla prima funzione factorial().
Infine, la prima funzione factorial() restituisce 24 alla funzione main(), che viene visualizzata sullo schermo.