Appearance
191. 返回数字为是1的个数
解法一:转换成二进制字符串进行累加
js
/**
* @param {number} n - a positive integer
* @return {number}
*/
var hammingWeight = function(n) {
let str = n.toString(2);
let count = 0;
for(let i = 0; i < str.length; i++) {
// 不能用===,因为str[i]是字符串类型,要么用Number强制转换
if (str[i] == 1) count++;
}
return count;
};
解法二:取余分离个位数,判断累加
js
/**
* @param {number} n - a positive integer
* @return {number}
*/
var hammingWeight = function(n) {
let count = 0;
while(n !== 0) {
let num = n % 2;
if (num === 1) count++;
n = Math.floor(n / 2)
}
return count;
};