XORがC++の「x」と等しくなるように、4つの配列からすべてのQuadrupleをカウントします
このチュートリアルでは、XORがxに等しくなるように4つの配列から4つ組の数を見つけるプログラムについて説明します。
このために、4つの配列と値xが提供されます。私たちのタスクは、XORが指定された値xに等しいすべての4倍をカウントすることです。
例
#include<bits/stdc++.h> using namespace std; //counting quadruples with XOR equal to x int count_quad(int a[], int b[], int c[], int d[], int x, int n){ int count = 0; for (int i = 0 ; i < n ; i++) for (int j = 0 ; j < n ; j++) for (int k = 0 ; k < n ; k++) for (int l = 0 ; l < n ; l++) if ((a[i] ^ b[j] ^ c[k] ^ d[l]) == x) count++; return count; } int main(){ int x = 3; int a[] = {0, 1}; int b[] = {2, 0}; int c[] = {0, 1}; int d[] = {0, 1}; int n = sizeof(a)/sizeof(a[0]); cout << count_quad(a, b, c, d, x, n) << endl; return 0; }
出力
4
-
n XOR n+1がC++で指定されたkと等しくなるような最小数nを見つけます
正の数kがあるとします。 nとn+1のXORがkと同じになるように、正の数nを見つける必要があります。したがって、k =7(111)の場合、出力は3になります。3(011)、3 + 1 =4(100)として、011 XOR 100 =111(7) 考えられるケースは2つあります。 nが偶数であると考えてください。 n=0の最後のビット。次にn+1=1の最後のビット。残りのビットは同じです。したがって、nが奇数の場合、XORは1になり、最後のビットは1になり、n + 1ビットの最後のビットは0になります。ただし、この場合、キャリーによって異なるビットが増えます。キャリーは、最初の0ビットを取得
-
C ++を使用して、XORが0になるような配列内のペアの数を見つけます。
n個の要素の配列があるとします。 XORが0になる配列内のペアの数を見つける必要があります。XORが0のペア(x、y)の場合、x=yです。これを解決するために、配列を並べ替えることができます。次に、2つの連続する要素が同じである場合は、カウントを増やします。すべての要素が同じである場合、最後のカウントはカウントされない場合があります。その場合、最後の要素と最初の要素が同じであるかどうかを確認し、同じである場合は、カウントを1つ増やします。 例 #include<iostream> #include<algorithm> using namespace std; in