C++のバイナリ表現でk番目のビットの値を検索します
この問題では、2つの値nとkが与えられます。私たちのタスクは、バイナリ表現でk番目のビットの値を見つけることです。 。
問題を理解するために例を見てみましょう
Input : n= 5, k = 2 Output : 0
説明 −
Binary of 5 = 0101 Second LSB bit is 0.
ソリューションアプローチ
この問題の解決策は、すべてのビットが設定されておらず、1ビットがk番目に設定されている数値で数値Nの2進変換のビットごとのANDを実行して、結果を取得することです。
例
ソリューションの動作を説明するプログラム
#include <iostream> using namespace std; void findKBitVal(int n, int k){ cout<< ((n & (1 << (k - 1))) >> (k - 1)); } int main(){ int n = 29, k = 4; cout<<"The value of kth bit in binary of the number is "; findKBitVal(n, k); return 0; }
出力
The value of kth bit in binary of the number is 1
-
C++で左下のツリー値を検索
二分木があるとします。そのツリーの最後の行の左端の値を見つける必要があります。したがって、ツリーが次のような場合- 最後の行が[7、4]であり、左端の要素が7であるため、出力は7になります。 これを解決するには、次の手順に従います- 最初にansとlvl変数を0として定義します solve()と呼ばれる1つのメソッドを定義します。これはツリーノードを取り、レベルは最初は0です。これは次のように機能します- ノードがnullの場合は、を返します。 lvlの場合、ans:=ノードの値およびlvl:=level 解決(ノードの左側、レベル+ 1)
-
C++の二分探索木で最小値のノードを見つけます
1つの二分探索木があるとします。二分探索木で最小要素を見つける必要があります。したがって、BSTが以下のような場合- 最小要素は1になります。 左のサブツリーは常に小さい要素を保持していることがわかっています。したがって、左がnullになるまで左のサブツリーを何度もトラバースすると、最小の要素を見つけることができます。 例 #include<iostream> using namespace std; class node{ public: node *left;