Zadatak 1.
void obradi(int n, int cifre[])
{
while(n>0)
{
cifre[n % 10]++;
n /= 10;
}
}
void prebroji(int n1, int n2, int cifre[])
{
int i;
for(i = 0; i < 10; i++) cifre[i] = 0;
for(i = n1; i <= n2; i++) obradi(i,cifre);
}
void main()
{
int i, cifre[10];
printf("n1 = "); scanf("%d",&n1);
printf("n2 = "); scanf("%d",&n2);
prebroji(n1,n2,cifre);
for(i = 0; i < 10; i++)
if(cifre[i]) printf("Cifre %d se javlja %d puta. \n",i,cifre[i]);
}
Zadatak 2.
int dodi[4] = {0,1,0,-1};
int dodj[4] = {1,0,-1,0};
void main()
{
int a[100], k, mat[20][20], n;
int smer;
int i, j, treba, br, pomb, broj;
...
i = j = br = smer = pomb = 0;
treba = n - 1;
broj = 0;
while(broj < n * n)
{
mat[i][j] = a[br];
broj++;
br = (br + 1) % k;
pomb++;
i += dodi[smer];
j += dodj[smer];
if(pomb == treba)
{
smer++;
pomb = 0;
if(smer == 4)
{
smer = 0;
treba -= 2;
i++; j++;
}
}
}
}
Zadatak 3.
(define (b n)
(if (= n 0) 0
(+ (modulo n 2) (b (quotient n 2)))
)
)
(define (suma n m)
(if (> n m) 0
(+ (/ n (b n)) (suma (+ n 1) m))
)
)
Zadatak 4.
deljivi([],0).
deljivi([G|R],N) :- lista(G), deljivi(G,N1), deljivi(R,N2), N is N1 + N2.
deljivi([G|R],N) :- G mod 5 == 0, deljivi(R,N1), N is N1 + 1.
deljivi([G|R],N) :- deljivi(R,N).
lista([]).
lista([G|R]).