描述题目:
求某二进制数中1的个数。
给定一个unsignedint型的正整数,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。
详细描述:
原型:intGetCount(unsigned int num)
输入参数:num 给定的正整数
输出参数(指针指向的内存区域保证有效):无
返回值:返回1的个数
举例:
输入13,则对应的二进制是1101,那么1的个数为3个。则:返回3。
代码:
#include <iostream>
using namespace std;
int GetCount(unsigned int num){
int yu, count = 0;
while (num > 0){
if (num % 2){
count++;
}
num /= 2;
}
return count;
}
int main(){
int num;
cin >> num;
cout << GetCount(num) << endl;
cin.get();
cin.get();
return 0;
}