ops, se hai bisogno anke degli altri mandami un pm ke ti aiuto volentieri tanto sono semplici
![]()
ops, se hai bisogno anke degli altri mandami un pm ke ti aiuto volentieri tanto sono semplici
![]()
#include <cervello.h>
Veramente noOriginariamente inviato da Eyescream
ma funziona quel codice?![]()
Mi sono scordato "*f"
Questo è il codice funziononte:
codice:int fact(int f){ int risposta; if(f==1)return 1; risposta = fact(f-1)*f; return risposta; }
E hai anche dimenticato un caso base: quando l'argomento è 0!Originariamente inviato da gandalf45
Veramente no![]()
Mi sono scordato "*f"
Questo è il codice funziononte:
codice:int fact(int f){ int risposta; if(f==1)return 1; risposta = fact(f-1)*f; return risposta; }
Ovviamente tralasciando i casi di "errore" per i valori negativi (caso in cui la funzione va in loop).codice:int fact(int f){ int risposta; if((f==1) || (f == 0))return 1; risposta = fact(f-1)*f; return risposta; }
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Prova anche questo
Ciao.codice:int fatt(int x) { return (x <= 0) ? 1 : x * fatt(x-1); }![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Scusa, ma tu avresti bisogno di chiarimenti in C o in C++ ?Originariamente inviato da Sal84
allora sto risolvendo questi problemini in maniera elementare poiché ad esempio nn so ancora le funzioni.
programmino FATTORIALE n! CON CICLO WHILE
#include <iostream.h>
#include <stdlib.h>
int main()
{
int risultato=1;
int n;
int i=1;
cin >> n;
while ( i<=n ) {
risultato= risultato*i;
i++; }
cout << risultato;
system("PAUSE");
return 0;
}
PROGRAMMINO CHE PRENDE 5 NUMERI IN INPUT, NE FA IL FATTORIALE, E LI SOMMA
#include <iostream.h>
#include <stdlib.h>
int main()
{ int risultato =0;
for (int i = 0; i < 5; ++i) { int n;
cin >> n;
int fatt = 1;
for (int j = 1; j <= n; ++j) fatt *= j;
risultato += fatt;
}
cout << risultato;
}
funzionano ma ci sono modi per scrivere meno codice... cioè farli + elegantemente?
mi rendo conto di aver chiesto il programma per la somma/prodotto di numeri... sono alquanto progredito direi..LoL
dal basso delle mie conoscenze sulla ricorsività, questa non ritorna sempre 1 alla fine?Originariamente inviato da LeleFT
codice:int fatt(int x) { return (x <= 0) ? 1 : x * fatt(x-1); }
No: funziona bene, ma se facciamo così ci risparmimo un'istanza ogni volta:
codice:int fact(int n) { return ((n<=1) ? 1 : n*fact(n-1)); }![]()
Summum crede nefas animam preferre pudori e propter vitam vivendi perdere causas.
(Giovenale)