No Title

10 March 2017

Views: 154

binomiale.c
double binomiale(unsigned int n, unsigned int k)
{
double nfatt = 1, kfatt = 1, nkfatt = 1;

//Verifico i casi particolari
if (n == 0 || k > n)
return -1;

//Parto da 2 perchè le variabili sono già pronte nel caso 1
//Notare che arrivo fino a n incluso
for (unsigned int i = 2; i <= n; i++) {
nfatt *= 1; //Definizione del fattoriale
//Qui verifichiamo i due casi che ci permettono di calcolare k! e (n - k)!
if (i == k)
kfatt = nfatt;
if (i == n - k)
nkfatt = nfatt;
}

//Alla fine applico la definizione.
return nfatt / (kfatt * nfatt);
}

main.c
extern double binomiale(unsigned int n, unsigned int k);

int main (void)
{
double d;

d = binomiale (5, 2);
d = binomiale (10, 1);
d = binomiale (10, 4);
d = binomiale (10, 2);
d = binomiale (0, 1);
d = binomiale (1, 0);
d = binomiale (1, 1);
return 0;
}

Share