Count Set Bits in an Integer

Code

#include <stdio.h>

int countSetBits(unsigned int n) {
  //  \/\/ Write your code here
  //   int count = 0;
  //  \/\/ for(int i = 0; i < 32; ++i){
  //  \/\/     if((n >> i) & 0b1 == 1){
  //  \/\/         ++count;
  //  \/\/     }
  //  \/\/ }
  //  \/\/ return count;
  int count = 0;
    while(n){
        n = n & (n -1);
        ++count;
    }
     return count;
}

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

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

5

Expected Output

2