Count Set Bits in an Integer

Code

#include <stdio.h>

int countSetBits(unsigned int n) {
    // Write your code here
    int count = 0;
while (n>0) {
   n=n&(n-1);
   count++;
}
    return count;   
}

int main() {
    int n;
    scanf("%d", &n);
    printf("%d", countSetBits(n));
    return 0;
}

Solving Approach

Brian Kernighan's Logic: N&(N-1)
Instead of checking every bit ,it will remove a set bit at a time

 

 

Upvote
Downvote
Loading...

Input

5

Expected Output

2