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

C++で数値のK番目の最下位ビットを出力します


この問題では、2つの数nとkが与えられます。私たちのタスクは、k th を印刷することです 数値nの最下位ビット。

問題を理解するために例を見てみましょう

Input: n = 12 , k = 3
Output
1
Explanation:
Let’s see the binary representation of n: 12 = 1100

ここで、3番目の最下位ビットは1です。

この問題を解決するために、数値の2進ビットを使用します。そして、数値のk番目のビットを生成します。このために、数値の2進シフトを使用し、数値を左シフト(k-1)回します。次に、シフトされた数値と元の数値の終了操作を実行します。これにより、k番目のビットの値が得られます。

以下のコードは、ソリューションの実装を示しています

#include <bits/stdc++.h>
using namespace std;
int main() {
   int N = 12, K = 3;
   cout<<K<<"th significant bit of "<<N<<" is : ";
   bool kthLSB = (N & (1 << (K-1)));
   cout<<kthLSB;
   return 0;
}

出力

3th significant bit of 12 is : 1

  1. C++を使用したK番目のビットセットを使用した範囲内の配列要素の数のクエリ

    この記事では、k番目のビットが設定されている特定の範囲に存在する要素の数を見つける問題について説明します。たとえば、- Input : arr[] = { 4, 5, 7, 2 } Query 1: L = 2, R = 4, K = 4 Query 2: L = 3, R = 5, K = 1 Output :    0    1 ブルートフォースアプローチによってこの問題を解決し、このアプローチがより高い制約に対して機能するかどうかを確認します。そうでない場合は、新しい効率的なアプローチを考えます。 ブルートフォースアプローチ このアプローチでは

  2. C++五胞体数

    五胞体数は、パスカルの三角形の5番目の数として表されます。ご存知のように、これは5番目の数字です。つまり、パスカルの三角形に少なくとも5つの数字が必要です。したがって、このシリーズの最初の数字は 1 4 6 4 1から始まります。 パスカルの三角形の4行目。したがって、このチュートリアルでは、たとえば、n番目の五胞体数を見つける必要があります Input : 1 Output : 1 Input : 4 Output : 35 次の図から出力を確認できます- この問題については、可能な限り、これは一種のシリーズであるため、ソリューションでこのシリーズのパターンを見つけようと