C++で1からnまでのK個の数値を使用した最大XOR
この問題では、2つの正の整数nとkが与えられます。私たちのタスクは、最大X数を使用して1からnまでの最大XORを見つけることです
問題を理解するために例を見てみましょう
入力 − n =5、k =2
出力 − 7
説明 −
elements till 5 is 1, 2, 3, 4, 5 Selecting all XOR pairs: 1^2 = 3, 1^3 = 2, 1^4 = 5, 1^5 = 4 2^3 = 4, 2^4 = 6, 2^5 = 7 3^4 = 7, 3^5 = 6 4^5 = 1 The maximum here is 7.
この問題を解決するために、数値のすべてのビットが設定されているときに、数値の任意の組み合わせに対して最大のXORを見つけることができます。
したがって、数値が5の場合、その2進数は101であり、最大XORは111、つまり7になります。
ただし、最大XORに使用される要素の数が1の場合、最大XORは1です。それ以外の場合、最大XORは、すべてのビットを設定することによって検出されます。
例
ソリューションの動作を説明するプログラム
#include <iostream> using namespace std; int maxXor(int n, int k) { if (k == 1) return n; int result = 1; while (result <= n) result <<= 1; return result - 1; } int main() { int n = 5, k = 2; cout<<"The maximum XOR of "<<k<<" numbers from 1 to"<<n<<" is "<<maxXor(n, k); return 0; }
出力
The maximum XOR of 2 numbers from 1 to 5 is 7
-
C++で++演算子を使用して2つの数値を追加します。
プログラミングでは、++演算子は、オペランドの値を1ずつ増やすインクリメント演算子です。この演算子を使用して、数値a、bに1を何度も加算することにより、2つの数値を加算できます。 例、 Input: a = 31 , b = 4 Output: 35 説明 − 1を31に4回加算すると、合計は31 + 1 + 1 + 1 + 1=35になります。 アルゴリズム Input: two integers a and b. Step 1: loop from 0 to b and follow step 2. Step 2: add 1 to b. Step 3: print the value
-
C ++で多数を処理しますか?
C ++では、Boostライブラリを使用して多数を使用できます。このC++Boostライブラリは、広く使用されているライブラリです。これは、さまざまなセクションで使用されます。それはアプリケーションの大きなドメインを持っています。たとえば、ブーストを使用すると、2 64のような多数を使用できます。 C++で。 ここでは、Boostライブラリの例をいくつか示します。大きな整数のデータ型を使用できます。 int128_t、int256_t、int1024_tなどのさまざまなデータ型を使用できます。これを使用すると、最大1024の精度を簡単に取得できます。 最初は、ブーストライブラリを使用して