把一个 32-bit 整型转成二进制,其中包含多少个 1 ,比如 5 的二进制表达是 101 ,其中包含 2 个 1
数据范围:输入的数字满足
#include <stdio.h> #include <stdlib.h> int bit_count(int x) { int n = 0; while (x) { x &= x - 1; ++n; } return n; } int main(const int argc, const char* const argv[]) { int x; fscanf(stdin, "%d", &x); fprintf(stdout, "%d\n", bit_count(x)); return 0;