Dubbio su codice ricorsivo per fattoriale

di Anonimizzato21817 il
2 risposte
Studiando la oop volevo integare nelle classi vari algoritmi che ho realizzato come esercizi. Uno di questi calcolava il fattoriale in modo ricorsivo. Facendo vari test che non ho fatto allora ho notato una stranezza, che è presente nella funzione fattoriale, praticamente se inserisco lo 0 mi restituisce 1 come è giusto che sia, ma il fatto è che io non l'ho specificato. Posto solo il codice della funzione:

int fattoriale (int n)
{ 
 if (n>1) 
 return n*fattoriale(n-1);
 } 
Potreste spiegarmi come mai?

2 Risposte

  • E' solo un caso, in realtà il risultato sarà indefinito.

    Devi scrivere
    
    int fattoriale (int n)
    { 
     if (n>1) 
        return n*fattoriale(n-1);
    
     return(1);
    } 
    
  • Ah ok, ho capito, grazie per il chiarimento.
Devi accedere o registrarti per scrivere nel forum
2 risposte