#include <stdio.h>
/*
Definirana je funkcija binom. Argumenti funkcije su n i k, tipa int.
Funkcija vraca vrijednost tipa long. Unutar funkcije deklarirane su
dvije varijable : vrijednost te i. To su tzv. lokalne varijable koje
postoje samo u vrijeme izvrsavanja te funkcije. Svaka funkcija koja
vraca neku vrijednost mora sadrzavati makar jednu return naredbu.
Nailaskom na return zaustavlja se izvodjenje funkcije i u pozivni program
se vraca ona vrijednost koja stoji uz return. U nasem primjeru
ako je n jednak k zaustavlja se funkcija i vraca 1 jer je n povrh n jednako 1.
Isto tako ako je k jednak 0 vraca 1 jer vrijedi n povrh 0 jednako 0.
Ako prosla dva uvjeta nisu izvrsena doci ce do izvrsavanje for petlje.
Ona racuna brojnik vrijednost=n(n-1)...(n-k+1) u formuli.
Brojac i je inicijaliziran s vrijednosti n i u svakom prolazu smanjuje se za 1
dok ne postane jednak n-k.
*/
long binom(int n, int k)
{
long vrijednost = 1;
int i;
if (n == k)
return 1;
if (k == 0)
return 1;
for (i = n; i > n-k ; i--)
vrijednost *= i;
for (i = 1; i <= k; ++i)
vrijednost /= i;
return vrijednost;
}
int main(void)
{
long bnm;
int n, k;
for (n = 0; n < 10; n++) {
for (k = 0; k <= n; k++) {
bnm = binom(n, k);
printf("%ld ",bnm);
}
printf("\n");
}
/* zaustavi ekran */
getchar();
return 0;
}