/* primer67.c - izracunavanje binomnih koeficijenata C(n,p) * sa markiranjem da bi se izbeglo ponavljanje * izracunavanja; * * r = C( n, p ) = C( n-1, p ) + C( n - 1, p-1 ) */ #include #define MAX 10 int C[MAX][MAX] = {0}; int MARK[MAX][MAX] = {0}; int kombi( int, int ); main() { int n=10, p=2, r; r = kombi( n, p ); printf("C(%d,%d) = %d\n", n, p, r ); } int kombi( int n, int p ) { int r = 1; printf("Izracunava se C(n,p)=C(%d,%d)\n", n, p ); if( (p==0) || (p==n) ) return r; else { if( MARK[n][p] != 0 ) return C[n][p]; else { int r1, r2; r1 = kombi( n-1, p ); r2 = kombi( n-1, p-1 ); r = r1 + r2; MARK[n][p] = 1; C[n][p] = r; } } return r; }