配列内の要素の数を数えます。バイナリ表現内の 1 の数は K の倍数です。

WBOY
リリース: 2023-09-19 22:09:08
転載
724 人が閲覧しました

設定ビットは 0 と 1 の 2 進数表現です。この1という数字をコンピュータでは設定ビットと呼びます。セットビットの計算を理解するために例を見てみましょう -

セットビットの計算を理解するために例を挙げてみましょう -

整数 96 の設定ビットは次のように計算されます。

配列内の要素の数を数えます。バイナリ表現内の 1 の数は K の倍数です。ビットを合計 96 に設定するとします。したがって、上記の表現に従って、これらの配列要素にビット 1 を設定すると、それらの合計は 96 になります。このようにして、ビットの 2 つのグループを形成します。したがって、K 値を 2 に設定すると、設定ビットは 96 の倍数になります。

このプログラムでは、設定されたビット数が K の倍数である配列要素のカウント問題を解きます。

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

プログラムを開始するには、
    ‘bits/stdc .h’
  • という名前のヘッダー ファイルを使用します。このファイルには、C の標準テンプレート ライブラリがすべて含まれています。

  • ‘find_bitcount’
  • という関数定義を作成しています。この関数定義は 3 つのパラメーター、つまり arr、n、k を受け取り、次のように定義されます −

    arr[]

    -配列のメイン関数から配列入力を取得します。

    n

    -配列の長さ

    k

    - 設定されたビット数で割り切れるかどうかをチェックします。

    これは、配列要素内の設定されたビットの総数をカウントします。

    次に、
  • ‘0’
  • ‘ans’ 変数に保存します。これにより、条件を満たす数値の数が追跡されます。

    for ループを開始して各要素を反復し、配列要素 (つまり
  • 'arr[i]'
  • ) を変数

    'x' (条件) に格納します。次の while ループで条件が満たされると、合計ビット セット数がチェックされます。この関数は、'x' を配列要素の値に初期化します。

    次に、変数
  • 'setBitsCount'
  • '0' に初期化され、現在の配列要素の設定ビット数が追跡されます。

    次に、x (x に格納されている配列要素) が 0 より大きいかどうかを確認する while ループを作成し、次の操作を行います。
  • setBitsCount = x & 1
  • -ビット単位の AND 演算子と 1 をループ内で使用して、x の最下位ビットが 1 であるかどうかを判断します。
    • x = x >> 1

      −結果が 1 の場合、設定された桁数を 1 増やします。次に、ループ内で >> 演算子を使用して x を 1 ビット右にシフトし、最下位ビットを削除します。
    • ここで、if ステートメントを使用して、「setBitsCount」が「k」で割り切れるかどうかを確認し、「%」演算子を使用し、「0」に等しい場合、現在の配列要素が条件を満たし、値が増加します。変数 'ans by '1' '。

  • 上記の条件をすべて処理した後、関数は

    'ans'

    の値を返します。これは、配列要素内の設定桁の合計数を定義します。
  • 次に main 関数を開始し、すべての配列要素を宣言します。次に、変数 'n'

    を初期化して配列のサイズを確認し、変数
  • 'K'
  • '2' に初期化して、配列が要素は K の倍数です。 最後に、print ステートメントで、'find_bitcount()'

    という名前の関数定義を呼び出し、結果を取得します。
  • ###例### このプログラムでは、設定ビットが K の倍数である配列要素のカウントを実装します。 リーリー ###出力### リーリー ###結論は###

    配列の要素をカウントする概念を検討しました。設定される桁数は K の倍数です。このプログラムでは、設定された配列要素数の要素の総数を計算する関数が定義されています。次に、>> 演算子によって設定されたビット数がどのようにシフトされるかを観察し、条件ステートメントを使用して、設定されたビット数に渡された配列要素の数を確認します。最後に、結果を出力するだけです。

以上が配列内の要素の数を数えます。バイナリ表現内の 1 の数は K の倍数です。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート