ホームページ >ウェブフロントエンド >jsチュートリアル >2 つの数値が互いにビット ループであるかどうかをチェックする Javascript プログラム

2 つの数値が互いにビット ループであるかどうかをチェックする Javascript プログラム

王林
王林転載
2023-09-01 16:05:121266ブラウズ

Javascript 程序检查两个数字是否是彼此的位循环

問題文 - 2 つの整数が与えられており、これら 2 つの数値が互いのビット ループであるかどうかを確認する必要があります。

JavaScript では、各整数は 0 と 1 を表す 32 ビットの 2 進数です。ここでは、最初の数値の 32 ビット文字列が回転されているかどうかを確認する必要があります。最初の数値を合計 32 回回転させることで、2 番目の数値の 32 ビット文字列を取得できるかどうかを確認できます。

ToString() メソッドを使用して、2 つの数値が互いにビット巡回であるかどうかを確認します

toString() メソッドは、整数を 32 ビットの 2 進数文字列に変換するために使用されます。その後、バイナリ文字列に先頭のゼロを追加して、文字列を 32 ビット長にします。次に、数値のバイナリ文字列をそれ自体と連結し、2 番目の数値のバイナリ文字列が結合された文字列の部分文字列として存在するかどうかを確認します。

###文法###

ユーザーは次の構文に従って、接続文字列の後の 2 つの数値が相互にビット巡回であるかどうかを確認できます。

リーリー ###アルゴリズム###

ステップ 1
    - toString() メソッドを使用し、引数として 2 を渡して、2 つの数値をバイナリ文字列に変換します。
  • ステップ 2
  • - 次に、両方の文字列のサイズを 32 ビットに設定する必要があります。したがって、両方のバイナリ文字列に先頭のゼロを追加します。
  • ステップ 3
  • - num1 のバイナリ文字列をそれ自体にマージします。
  • ステップ 4
  • - マージされた文字列に num2 のバイナリ文字列が含まれているかどうかを確認します。そうであれば、両方の数値が互いにビット サイクルであることを意味します。
  • 例 1

  • 以下の例では、checkBitRotations() 関数は上記のアルゴリズムを実装して、2 つの数値が相互にビット回転しているかどうかを確認します。出力では、1 と 2 は互いにビット サイクルであるが、1 と 5 は異なることがわかります。
リーリー

For ループを使用して、2 つの数値が相互にビット回転しているかどうかを確認します

このメソッドでは、数値をバイナリ文字列に変換します。その後、for ループを使用して最初の数値のすべての回転を取得し、すべての回転を 2 番目の数値と比較します。最初の数値のいずれかの回転が 2 番目の数値と一致する場合、それらは相互にビット回転します。

###文法###

ユーザーは、以下の構文に従って、最初の数値と 2 番目の数値のすべての回転を一致させ、それらが互いのビット回転であることを確認できます。

リーリー

上記の構文では、最初の数値と 2 番目の数値を 1 つずつ比較し、一致する場合に true を返します。

###アルゴリズム###

ステップ 1

- toString() メソッドを使用して、2 つの数値をバイナリ文字列に変換します。

  • ステップ 2

    - ここで、先頭にゼロを追加して長さが等しくなるようにします。

  • ステップ 3

    - for ループを使用して最初の文字列を繰り返します。

  • ステップ 4

    - num1Binary が num2Binary と一致する場合は true を返します。

  • ステップ 5

    - for ループで、最初の数値の現在の回転が 2 番目の数値と一致しない場合は、最初の数値を回転して新しい回転を取得します。

  • ステップ 6

    - いずれかの回転が一致するまで、次の回転と 2 番目の回転の一致を続けます。一致しない回転がある場合は false を返します。

    李>例 2
  • 以下の例では、ビット回転をチェックするために上記のアルゴリズムを実装します。ここでは、最初の数字の各スピンを 1 つずつ取得し、2 番目の数字と比較します。いずれかの回転が一致する場合は true を返します。これはユーザーが出力で確認できます。 リーリー ユーザーは、2 つの数値が互いのビット ループであるかどうかを確認する 2 つの異なる方法を学習しました。最初のメソッドでは、最初の文字列をそれ自体と連結し、2 番目の数値が部分文字列として存在するかどうかを確認します。 2 番目の方法では、for ループを使用して最初の数値のすべてのビット回転を検索し、それらを 2 番目の数値と照合します。

以上が2 つの数値が互いにビット ループであるかどうかをチェックする Javascript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。