#include <stdio.h> #include <stdint.h> uint8_t count_set_bits(uint8_t reg) { // Your code here uint8_t onecou=0; for (int i=0; i<=7; i++){ if(reg & (0x1<<i)) onecou++; } return onecou; } int main() { uint8_t reg; scanf("%hhu", ®); printf("%u", count_set_bits(reg)); return 0; }
Approach 1 mine: Traditional
Approach 2: always check the lsb and right shift the register untill it becmes 0.
Test Cases
Test Results
Input
0
Expected Output