请实现如下接口
public static int findNumberOf1(intnum)
{
/* 请实现 */
return 0;
}
譬如:输入5 ,5的二进制为101,输出2
涉及知识点:位运算
知识点: 位运算
题目来源: 内部整理
练习阶段: 初级
运行时间限制: 10Sec
内存限制: 128MByte
输入: 输入一个整数
输出: 计算整数二进制中1的个数
样例输入: 5
样例输出: 2
我的代码:
#include <iostream>
using namespace std;
int main()
{
int GetCount(unsigned int num);
unsigned int a;
cin>>a;
cout<<GetCount(a)<<endl;
return 0;
}
int GetCount(unsigned int num)
{
//在这里实现功能
int m=0;
while(num)
{
num &=(num-1);
m++;
}
return m;
}
代码评价:
之前,把main函数中的num 声明为int型时,在vs2008上运行正确,在oj平台上总是运行错误。
后来看了大家的评论,提示把num声明为 unsigned int 计算结果正确。