non ho voglia di stare a fare milel cicli o ke.. non c'è una funzione in qualche libreria per fare il fattoriale di un numero?
(n!)
3!=3*2*1=6
4!=4*3*2*1= 24
{per chi non sapesse cos'è il fattoriale o cosa intendo..}
grazie!!!
non ho voglia di stare a fare milel cicli o ke.. non c'è una funzione in qualche libreria per fare il fattoriale di un numero?
(n!)
3!=3*2*1=6
4!=4*3*2*1= 24
{per chi non sapesse cos'è il fattoriale o cosa intendo..}
grazie!!!
vabbè... speravoc i fosse una unzione in qualche libreria... ho fatto direttamente unalgoritmo che faccia il fattoriale.Originariamente inviato da suomi_viking_86
prova con la ricorsione
codice:double Fattoriale(int n) { if(n==0) return 1; else return n*Fattoriale(n-1); }
...Terrible warlords, good warlords, and an english song
versione iterativa:
codice:long int fattoriale(int n) { int i; long int result = 1; for(i=0; i<n; i++) result *= n; return result; }
sicuro che vada bene??Originariamente inviato da iguana13
versione iterativa:
codice:long int fattoriale(int n) { int i; long int result = 1; for(i=0; i<n; i++) result *= n; return result; }![]()
![]()
Io avrei fatto:apparte che io decremento il contatore ,mentre tu lo incrementi,secondo me il problema è che nella tua versione associ ripetitivamente a result il prodotto tra il numero di cui calcolare il fattoriale per l'"accumolo" createsi in result stesso....cioè non decrementi mai n e lo moltiplichi sempre cosi' com'è!codice:long int fattoriale(int n){ int i; long int res=1; for(i=n;i>1;i--) res *=i; return res; }
sbaglio??![]()
ps se provio vogliamo farlo in "salita"LOL avrei fatto...
forse volevi scriverlo cosi'?codice:long int fattoriale(int n){ int i; long int res=1; for(i=0;i<n:i++) res *=i; return res; }![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
ma + facile di così?!?! (io avrei messo int e non double.. cmq)Originariamente inviato da Johnny_Depp
codice:double Fattoriale(int n) { if(n==0) return 1; else return n*Fattoriale(n-1); }
if u think u'r too small to make a difference, try sleeping with a mosquito!!
Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?
bè double o long int sono + appropiati visto che la funziona fattoriale ritorna numeri molto grandi!Originariamente inviato da geppo80
ma + facile di così?!?! (io avrei messo int e non double.. cmq)
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Sì hai ragione, l'ho fatto al volo senza neanche riguardarlo... ed ho scritto una grande cazzata!Originariamente inviato da andrea_NET-_DSL
sicuro che vada bene??![]()
![]()
Io avrei fatto:apparte che io decremento il contatore ,mentre tu lo incrementi,secondo me il problema è che nella tua versione associ ripetitivamente a result il prodotto tra il numero di cui calcolare il fattoriale per l'"accumolo" createsi in result stesso....cioè non decrementi mai n e lo moltiplichi sempre cosi' com'è!codice:long int fattoriale(int n){ int i; long int res=1; for(i=n;i>1;i--) res *=i; return res; }
sbaglio??![]()
ps se provio vogliamo farlo in "salita"LOL avrei fatto...
forse volevi scriverlo cosi'?codice:long int fattoriale(int n){ int i; long int res=1; for(i=0;i<n:i++) res *=i; return res; }![]()
Tra l'altro siccome i parte da zero, la prima volta mltiplica per zero e quindi rimarrà sempre zero!
!