/* File: combi.c */
/* Time-stamp: "2001-03-21 15:42:32 calvanes" */
/* Scopo: uso di funzioni */

/* Calcola il numero delle combinazioni di n oggetti presi r ad r,
   usando una funzione che calcola il fattoriale.
   La formula per il calcolo delle r-combinazioni di n oggetti e'
   n!/(r!*(n-r)!).
*/

#include <stdio.h>


long fattoriale(long x)
{
  long f = 1;
  long i;

  if (x > 0) {
    for (i = 1; i <= x; i++)
      f *= i;
  }
  return f;
}  /* fattoriale */


int main(void)
{
  long n;       /* numero di oggetti */
  long r;       /* numero di oggetti per ogni gruppo */
  long comb;    /* numero di combinazioni */

  printf("Numero di oggetti? ");
  scanf("%ld", &n);
  printf("Numero di oggetti in ogni gruppo? ");
  scanf("%ld", &r);
  comb = fattoriale(n) / (fattoriale(r) * fattoriale(n-r));
  printf("Le combinazioni di %d oggetti presi %d a %d sono pari a %d\n",
         n, r, r, comb);
  return 0;
}  /* main */