var hammingWeight = function(n) {
var j = 0;
var answer = "";
if(n === 1) {
return 1;
}
if (n !== 0)
{
while (n !== 0) {
answer = Math.abs(n % 2) + answer;
n = parseInt(n / 2);
}
if (answer.length === 0){
answer = "0";
return 0;
}
for (var a in answer) {
if (a == 1) {
j++;
} else {
continue;
}
}
return j;
}
else {
return 0;
}
};
看不懂你的逻辑。。
我写的(手机码字):
function (n) {
var ans = 0;
while (n) {
if (n & 1) ans++;
n >>= 1;
}
return ans;
}
用 JavaScript 更简单啊,几句话就结了
function getOneCount(n) {
var s = n.toString(2);
var p = s.split(/1/);
return p.length - 1;
}