/*
Calcolo del fattoriale
esercizio con le funzioni
MC2016
*/
#include <iostream>
using namespace std;
// prototipo: dichiarazione della funzione fattoriale, dato un numero intero, restituisce un double
double fattoriale(int);
int main() {
int num;
double risultato;
cout<<"CALCOLO DEL FATTORIALE num!"<<endl;
//chiedo e continuo a richiedere il numero fintanto che il numero è negativo e quindi non valido
do {
cout<<"inserisci il numero: ";
cin>>num;
}
while (num<0);
risultato= fattoriale(num);
cout<<num<<"! = "<<risultato<<endl;
return 0;
} //fine del main
//codice della funzione fattoriale
double fattoriale (int n) {
double f;
int i;
// caso particolare: se n vale zero il risultato è per convenzione 1
if (n==0)
f=1;
else {
f=1;
//ciclo di moltiplicazioni da 1 a n, il risultato è accumulato nella variabile f
for (i=1; i<=n;i++){
f=i*f;
//scrittura dei risultati parziali
cout<<i<<": "<<f<<endl;
} //fine ciclo for
} //fine if
//ritorno del risultato al main
return (f);
} //fine della funzione fattoriale