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

指定された数値との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

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++で指定された値を持つ葉を削除する

    二分木と整数のターゲットがあるとすると、値のターゲットを持つすべてのリーフノードを削除する必要があります。親ノードがリーフノードになり、値ターゲットを持つ場合、値ターゲットを持つリーフノードを削除すると、それも削除する必要があることに注意する必要があります(できなくなるまでそれを続ける必要があります)。したがって、ツリーが以下のようになり、ターゲットが2の場合、最終的なツリーは最後のツリーのようになります- これを解決するには、次の手順に従います- remLeaf()と呼ばれる再帰メソッドを定義します。これにより、ルートとターゲットが取得されます ルートがnullの場合、n

  2. 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