Skip to content

191. 返回数字为是1的个数

leetCode-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;
};

MIT Licensed