/*-----------------------------------------
   esFattoriale.cpp

   Scrivere un programma che legge da
   tastiera un intero non negativo e ne
   calcoli il fattoriale:
   0! e' uguale a 1
   n! e' uguale a  1*2*3*....*n

   Ad esempio per n = 4 deve restituire 24, 
   ossia 1*2*3*4

   
 Suggerimento:
 
 utilizzare una istruzione ripetitiva con un
 contatore i e utilizzare la variabile risultato
 (abbreviato ris) per mantenere il prodotto
 da 1 fino a i


-----------------------------------------*/



#include <iostream>
using namespace std;

int main(){

  int n;
  cout <<"Inserire il valore di cui calcolare il fattoriale: "<<endl;
  cin>>n;
  // gestione ingresso negativo
  if (n < 0)
    n = 0;

  int ris = 1;
  int i = 1;  // 'i' indica il passo

  while ( i <= n ){

    ris = ris * i; // il risultato al passo 'i' si ottiene
                   // moltiplicando il risultato calcolato al
                   // passo precedente  per  i
    i = i + 1;     // incremento il passo
  }

  cout <<endl<<"Il fattoriale di "<<n<<" e': "<<ris<<endl;

  return 0;
}
