Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの数値の2進表現で1を計算する


問題

最初で唯一の引数として単一の整数numを受け取るJavaScript関数を作成する必要があります。この関数は、0からnumまでのすべての数値(両方を含む)の配列を準備する必要があります。各数値について、対応する要素は、その数値の2進表現に含まれる1の数である必要があります。

たとえば、関数への入力が-

の場合
const num = 4;

その場合、出力は-

になります。
const output = [0, 1, 1, 2, 1];

出力の説明:

0にはバイナリ形式の01が含まれているため、1には1が含まれます。

このためのコードは-

になります
const num = 4;
const mapBinary = (num = 0) => {
   if (num === 0){
      return [0];
   };
   const res = [0];
   for (let i = 1; i <= num; i++) {
      const n = i % 2 === 0 ? res[i/2] : res[Math.floor(i/2)] + 1;
      res.push(n);
   };
   return res;
};

コードの説明:

ビットを計算する際に、物事をより簡単にするために心に留めておくことができることがいくつかあります。

  • numberOfBits(n)===numberOfBits(2 * n)、2番目の結果は最初の結果と比較してもう1つの0ビットを取得します。

  • nが偶数の場合、nの最後のビットは0になります。

  • nが奇数の場合、結果の計算は(n-1)/ 2の最後のビットを1に置き換えると見なすことができるため、式numberOfBits(n)===numberOfBits(Math.floor(n / 2))が得られます。 +1。

出力

そして、コンソールの出力は-

になります
[ 0, 1, 1, 2, 1 ]

  1. JavaScript番号の例

    以下はJavaScriptの数字の例です- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>    body

  2. JavaScriptで配列の中央値を計算する

    以下は、JavaScriptで配列の中央値を計算するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs