// Ricorsione
#include <stdio.h>
// tempo minimo 7 minuti, tempo medio 11 minuti, ricorsivo 15 secondi

/** Scrivi queste 4 funzioni usando la ricorsione*

0) 1+2+3+4+...n somma di n valori
1) 1-2+3-4+5-6.... +n
2) Somma degli n elementi del vettore v[]
3) Quanti elementi di un vettore v[] di dimensione n sono divisibili per k
Facoltativi:
4) Scrivere una printN(int n) che visualizza n sullo schermo senza usare
   printf o fprintf 
5) Compattare la funzione fattoriale in modo che stia su una 
   sola riga e con numero di caratteri <= 35
   0123456789012345678901234567890123456789
   int f(int n){XXXXXXXXXXXXXXXXXXXXX}   // soluzione piu' corta
***/
int fattoriale(int n)  // tempo 1 minuto per la codifica
{
	if (n <= 0)
		return 1;
	return n * fattoriale(n-1);	
}


int fattoriale2(int n) // fattoriale iterativo: tempo per la codifica minimo 7 minuti
{
	int fatt;
	for(fatt=1; n>0; n--)
		fatt*=n;
	return fatt;	

}


int main()
{
	int i;
	int fatt;
	for (i=0; i <=8; i++)
	{
	    fatt=fattoriale(i);
		printf("Fattoriale di %d = %d\n",i,fatt);
	}
	return 0;
}
