Bit Counting
5490 ワード
Description:
Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. You can guarantee that input is non-negative.
Example: The binary representation of
1234
is 10011010010
, so the function should return 5
in this caseMy Solution:
var countBits = function(n) {
// set counter
let counter = 0;
while(true) {
let share = parseInt(n/2);
let reminder = n % 2;
n = share;
// add only if reminder is 1
if(reminder == 1) {
counter++;
}
if(n == 0) {
break;
}
}
return counter;
};
parseInt(string, radix)
与えられた文字列を数値に変換し、与えられたアレイ法に従って変換します.必ず基数を明記しなければならない.
parseInt("111",2); // 7
Best Solutions:
function countBits(n) {
for(c=0;n;n>>=1)c+=n&1
return c;
}
与えられた条件を満たす場合、nの1のビットは1であり、cは1であり、0は0である.1回目の実施後、nを1つ右に押して、次の位置を比較する.countBits = n => n.toString(2).split('0').join('').length;
toString()
数値タイプを文字タイプに変更
split('0')
0を基準として、文字列を分割して配列として格納します.
join()
配列内のすべての要素を接続して文字列を形成します.
Reference
この問題について(Bit Counting), 我々は、より多くの情報をここで見つけました https://velog.io/@gtfo/Bit-Countingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol