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