问题链接:POJ NOI0113-30 1的个数。
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
给定一个十进制非负整数N,求其对应2进制数中1的个数。
输入
- 输入包含一行,包含一个非负整数N。(N < 10 9) 输出
- 输出一行,包含一个整数,表示N的2进制表示中1的个数。 样例输入
-
100
样例输出
-
3
问题分析
这是一个位运算的问题,使用位运算符是关键。
程序说明 :(略)
AC的C语言程序:
#include <stdio.h>
int main(void)
{
unsigned int n;
int sum;
scanf("%u", &n);
sum = 0;
while(n) {
if(n & 1)
sum++;
n >>= 1;
}
printf("%d\n", sum);
return 0;
}