URL:https://www.lintcode.com/problem/count-1-in-binary/description
描述
计算在一个 32 位的整数的二进制表示中有多少个 1
。
您在真实的面试中是否遇到过这个题?
样例
样例 1:
输入:32
输出:1
解释:
32(100000),返回 1。
样例 2:
输入:5
输出:2
解释:
5(101),返回 2。
1.通过率:76%
原因:未考虑到负数
在代码段中添加:
char arr[100];
int i,j=0,tmp,count = 0;
while(num!=0){
tmp = num%2;
arr[j++] = tmp+'0';
num = num/2;
}
if(j==0)
arr[j++]='0';
for(i=j-1;i>=0;i--){
if(arr[i]=='1')
count++;
}
return count;
运行结果: