English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础C++

Controllo del flusso C++

Funzione in C++

Array & Stringa C++

Struttura dei dati C++

Classe & Oggetto C++

Puntatore in C++

Ereditarietà in C++

Tutorial STL in C++

Manuale di riferimento C++

Funzione ricorsiva in C++

In questo articolo, imparerai a creare funzioni ricorsive. Le funzioni che si chiamano.

che si chiamaFunzioneChiamata funzione. E questa tecnica si chiama ricorsione.

Come funziona la ricorsione in C++?

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).

Esempio 1: Utilizzare la decomposizione ricorsiva di un numero

// 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

Spiegazione dell'uso: come funziona questo esempio?

Supponiamo che l'utente abbia inserito 4 e lo passi a questa funzione factorial().

  1. 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.

  2. 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.

  3. 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.

  4. 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().

  5. La terza funzione factorial() restituisce 2 alla seconda funzione factorial().

  6. La seconda funzione factorial() restituisce 6 alla prima funzione factorial().

  7. Infine, la prima funzione factorial() restituisce 24 alla funzione main(), che viene visualizzata sullo schermo.