Zadatak 1.
int complement(int *a, int na, int *b, int nb)
{
int br = 0, i = 0;
while((i<na)&&(i<nb))
{
br += (*(a+i)+*(b+i) == 3);
i++;
}
return br;
}
Zadatak 2.
int min(int a,int b)
{
return (a<b)?a:b;
}
int max(int a,int b)
{
return (a>b)?a:b;
}
void formiraj(int n, int a[][20])
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i+j < n) a[i][j] = 2 * min(i,j) + 1;
else a[i][j] = 2 * (n - max(i,j));
}
Zadatak 3.
(define (suma l p k)
(- (sumaDo l k 1) (sumaDo l (- p 1) 1))
)
(define (sumaDo l nivo tren)
(cond ((null? l) 0)
((> tren nivo) 0)
((atom? (car l)) (+ (car l) (sumaDo (cdr l) nivo tren)))
(t (+ (sumaDo (car l) nivo (+ 1 tren)) (sumaDo (cdr l) nivo tren)))
)
)
Zadatak 4.
pascal(N,L) :- form(N,0,L).
form(N,K,[]) :- N < K,!.
form(N,K,[G|R]) :- elem(N,K,G1), G is G1, K1 is K+1, form(N,K1,R).
elem(N,K,X) :- fakt(N,N1), fakt(K,K1), Kp is N-K, fakt(Kp,Kp1), X is N1 // (K1*Kp1).
fakt(0,1).
fakt(N,X) :- N1 is N-1, fakt(N1,X1), X is N*X1.