题解 | 求int型正整数在内存中存储时1的个数
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
#include <stdio.h> int main() { long int a,b; int num = 0; while (scanf("%ld\n", &a) != EOF) { while(a != 0) { b = 1; for(int i = 0;i < 31;i++) { if(a >= b && a < (b * 2)) { a -= b; num += 1; } b *= 2; } } printf("%d\n", num); } return 0; }