题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
http://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
#include <stdio.h>
#include <string.h>
//N =a[0]2^0+a[1]2^1 +...a[n]2^n
//N%2 == 1 ->a[0]=1 N/=2 ==1 -- 例如10 0,5 1,2 0,1 15 1,7 1,3 1,1
int main()
{
int n, count = 0;
scanf("%d", &n);
while (n)
{
if (n % 2 == 1)
{
count++;
}
n /= 2;
if (n == 1)
{
count++;
break;
}
}
printf("%d", count);
return 0;
}