题目描述:
输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
示例:
输入:
5
输出:
2
说明:
5的二进制表示是101,有2个1
解题思路:
本题用NumberOfOne函数计算整数二进制下的1的个数,一般可以用位运算或者右移运算实现。我这里采用了右移运算,将二进制数字余2,如果等于1,说明末位是1,count++,然后右移一下,直到number为0。比如5,二进制为101,右移一次010,再一次001。
测试代码:
#include <iostream> using namespace std; int NumberOfOne(int number) { int count=0; while(number) { if(number%2==1)count++; number>>=1; } return count; } int main() { int number; while(cin>>number) { cout<<NumberOfOne(number)<<endl; } return 0; }