JavaScriptのバイナリの1ビット数による整数の並べ替え
整数の配列を唯一の引数として受け取るJavaScript関数を作成する必要があります。
関数は、配列に存在する整数を、バイナリ表現に存在する1に基づいて昇順でソートする必要があります。 2つ以上の数値のバイナリに同じ数の1がある場合は、その大きさに応じて昇順で並べ替える必要があります。
例-
入力配列が-
の場合const arr = [34, 37, 23, 89, 12, 31, 23, 89];
その場合、出力配列は-
になりますconst output = [34, 12, 37, 23, 89, 23, 89, 31];
例
以下はコードです-
const arr = [34, 37, 23, 89, 12, 31, 23, 89];
const sortByBinary = (arr = []) => {
const calculateOne = (str = '') => {
let res = 0;
for(let i = 0; i < str.length; i++){
if(str[i] === '1'){
res++;
};
};
return res;
}
const sorter = (a, b) => {
const firstCount = calculateOne((a >>> 0).toString(2));
const secondCount = calculateOne((b >>> 0).toString(2));
return firstCount - secondCount;
};
arr.sort(sorter);
};
sortByBinary(arr);
console.log(arr); 出力
以下はコンソール出力です-
[ 34, 12, 37, 23, 89, 23, 89, 31 ]
-
JavaScriptを使用して10進値が偶数のバイナリ文字列を並べ替える
問題 長さ3のバイナリ文字列をすべてスペースで区切った文字列を取り込むJavaScript関数を作成する必要があります。 この関数は、数値を昇順で並べ替える必要がありますが、偶数を並べ替え、すべての奇数をそのまま残します。 例 以下はコードです- const str = '101 111 100 001 010'; const sortEvenIncreasing = (str = '') => { const sorter = (a, b) => { const findIn
-
C++で大きな2進数の1ビットの数を見つける
32ビットの符号なし2進数が与えられた場合、タスクは設定されたビットをカウントすることです。つまり、「1」がその中に存在します。 例 入力: N = 00000000000000100111 出力: 4 説明: 指定された符号なし数値に存在するセットビットの合計は4であるため、出力は「4」として返されます。 この問題を解決するためのアプローチ 符号なしの32ビットの2進数を指定しました。タスクは、そこに存在する「1」の数を数えることです。 指定された2進数に存在する「1」の数をカウントするには、2進数を入力パラメーターとして受け取る組み込みのSTL関数「__builin_po