题解 | #查找输入整数二进制中1的个数#

查找输入整数二进制中1的个数

https://www.nowcoder.com/practice/1b46eb4cf3fa49b9965ac3c2c1caf5ad

两种方法:

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        let str = parseInt(line);
        // 第一种方法,用系统库函数
        // let toER = str.toString(2);  
        // console.log(toER.match(/1/g).length);

        // 第二种方法,找出规律,递归调用
        let res = toER_W(str);
        console.log(res);
    
        function toER_W(n) {
            if(n==1||n==2){
                return 1;
            }
            if (n % 2 == 0) { // 如果是偶数,那么和它除以2后 再转换成二进制所包含的1的数量一直,比如 22 和 11 转换成二进制后所包含的 1 的数量一致。
                return toER_W(n / 2);
            } else {
                let res = parseInt(n/2); // 千万别忘了parseInt,否则进入死循环
                return 1 + toER_W(res);
            }
        }
    }
})();

全部评论

相关推荐

02-24 10:34
门头沟学院 Java
已注销:之前发最美的女孩基本爱答不理,发最帅的hr终于有反馈了,女孩子也要自信起来
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务