2001 – 5 bis

Dato il seguente frammento di programma

int C(int n, int k);
int fattoriale(int n);

main()
{
    int n, k;
    n=6;
    k=3;
    printf("%d\n", C(n, k));
}

int C(int n, int k)
{
    return (fattoriale(n)/(fattoriale(n-k)*fattoriale(k)));
}
int fattoriale (int n)
{
    int prodotto,i;
    prodotto=1;
    for(i=1; i <= n; i++)
    {
        prodotto *= i;
    }
    return (prodotto);
}

Che valore viene stampato?


Soluzione: 20.


La funzione fattoriale() restituisce il prodotto degli interi da 1 a n

  1. 1
  2. 2
  3. 6
  4. 24
  5. 120
  6. 720
  7. ...

Verrà visualizzato

  • C(6, 3)
  • fattoriale(6)/(fattoriale(6-3)*fattoriale(3))
  • 720/(6*6)
  • 720/36
  • 20