Calcolo del fattoriale con funzione C++



/*
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