指定された数値とのXORがC++で最大になる値を検索します
このチュートリアルでは、指定された数とのXOR演算が最大である数を見つけるプログラムを作成します。
ここではビット数を8と想定しています。
異なるビットのXOR演算により、1ビットが得られます。また、同じビット間のXOR演算により、0ビットが得られます。
与えられた数の1の補数が見つかった場合、それが私たちが探している数です。
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; int findNumberWithMaximumXOR(int X) { return ((1 << 8) - 1) ^ X; } int main() { int X = 4; cout << findNumberWithMaximumXOR(X) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
251
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
C++で指定された値を持つ葉を削除する
二分木と整数のターゲットがあるとすると、値のターゲットを持つすべてのリーフノードを削除する必要があります。親ノードがリーフノードになり、値ターゲットを持つ場合、値ターゲットを持つリーフノードを削除すると、それも削除する必要があることに注意する必要があります(できなくなるまでそれを続ける必要があります)。したがって、ツリーが以下のようになり、ターゲットが2の場合、最終的なツリーは最後のツリーのようになります- これを解決するには、次の手順に従います- remLeaf()と呼ばれる再帰メソッドを定義します。これにより、ルートとターゲットが取得されます ルートがnullの場合、n
-
Xとの絶対差がC++で最大値を与えるノードを見つけます
ツリーがあり、すべてのノードの重みと整数xがあるとします。 | weight [i]--x|となるようなノードiを見つける必要があります。最小です。グラフが以下のようで、x =15 出力は3になります。ノードごとに次のようになります ノード1、| 5 – 15 | =10 ノード2、| 10 – 15 | =5 ノード3、| 11 – 15 | =4 ノード4、| 8 – 15 | =7 ノード5、| 6 – 15 | =9 アイデアは単純です。ツリーでDFSを実行し、ノードの追跡を行います。ノードのxとの重み付き絶対差が最小値を示します 例 #include