题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
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 k = Number(line);
let count = 0;
if(k == 0) {
console.log(0);
return;
}
if(k == 1) {
console.log(++count);
return;
}
for (let i = 1; k >= 2; i++) {
// 如果 k 有余数,也就是 n == 1,那么前一位一定是 1
n = k % 2;
k = Math.floor(k / 2);
if(n == 1) {
count++;
continue;
}
}
// 循环中最后一次执行有可能会存在 k == 1的情况,说明最高位是 1
if(k == 1) {
console.log(++count);
return;
}
}
})();
