Domanda Ricorsione

Stato
Discussione chiusa ad ulteriori risposte.

PotereAlleRane

Utente Silver
26 Aprile 2009
32
5
0
63
gente stavo studiando pensare in c++ e sono arrivato alla ricorsione :omfg: non ho capito niente xDDDDD me la spiegate e magari mi fate anche un esempio? (Diverso da quello della guida)
grazie gente *-*
 
Ultima modifica:
Non so se sia lo stesso esempio della tua guida.. cmq è davvero semplice!
Praticamente la funzione utilizza se stessa..
http://it.wikipedia.org/wiki/Fattoriale
tipo il fattoriale di 5 è 1*2*3*4*5 = 120..
Codice:
int Fattoriale(DWORD n)
{
if(n == 1){
return 1;
} else {
return n * Fattoriale(n - 1);
}
}
Usalo con prudenza questo metodo!
 
  • Mi piace
Reazioni: cyb0rg
Ultima modifica da un moderatore:
[edit legolas93]
 
Ultima modifica:
come linea di massima sappi che qualsiasi funzione scritta in modo ricorsivo può essere riformulata anche in modo non ricorsivo, in modo da evitarsi eventuali problemi...

per esempio...

ricorsiva:
Codice:
int FattorialeR(int n) {
    if (n==1) return 1;
    return n*FattorialeR(n-1);
}
non ricorsiva:
Codice:
int Fattoriale(int n) {
    int risultato = 1;
    for (int j=2;j<=n;j++) {
        risultato*=j;
    }
    return risultato;
}
 
con TUTTI i cicli bisogna essere prudenti
è ovvio che se fai una cosa del tipo
Codice:
while (a < x){
x = x + a;
}
ti incasini anche con il wile
 
se leggi il mio messaggio sopra vedi che la ricorsione può essere utile per alcune cose, ma personalmente la ritengo una cattiva abitudine...
 
Stato
Discussione chiusa ad ulteriori risposte.