Brojanje uzastopnih jedinica u binarnom zapisu broja
Napisati funkciju int broj_parova(unsigned int x) koja računa broj pojavljivanja uzastopnih jedinica u binarnom zapisu celog neoznačenog broja x. Funkcija treba da vrati broj parova uzastopnih jedinica (ili "1" bitova) u binarnoj reprezentaciji broja. Napomena: Tri uzastopne jedinice, sadrze dve uzastopne jedinice dva puta.
Ulaz
Jedan celobrojni broj x.
Izlaz
Jedan celobrojni broj koji predstavlja broj pojavljivanja uzastopnih jedinica u binarnom zapisu broja x.
Primer 1
Ulaz
11
Izlaz
1
Primer 2
Ulaz
1024
Izlaz
0
Primer 3
Ulaz
2147377146
Izlaz
22
Rešenje
main.c
#include <stdio.h>
int broj_parova(unsigned int x){
int broj_parova = 0;
unsigned int maska = 3;
while(x!=0){
if((x & maska) == maska){
broj_parova++;
}
x = x >> 1;
}
return broj_parova;
}
int main(void)
{
unsigned int x;
scanf("%u", &x);
printf("%d\n", broj_parova(x));
return 0;
}