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;
}