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

C++の同じインデックスにある要素を除く配列のすべての要素のXORから配列を構築します


n個の正の要素を持つ配列A[]があるとします。 B[i]がA[i]を除くA[]のすべての要素のXORになるように、別の配列Bを作成する必要があります。したがって、A =[2、1、5、9]の場合、B =[13、14、10、6]

これを解決するには、最初にAのすべての要素のXORを見つけて、それを変数xに格納する必要があります。次に、A [i]の各要素について、B [i] =x XOR A [i]>

#include <iostream>
using namespace std;
void findXOR(int A[], int n) {
   int x = 0;
   for (int i = 0; i < n; i++)
   x ^= A[i];
   for (int i = 0; i < n; i++)
   A[i] = x ^ A[i];
}
int main() {
   int A[] = {2, 1, 5, 9};
   int n = sizeof(A) / sizeof(A[0]);
   cout << "Actual elements: ";
   for (int i = 0; i < n; i++)
   cout << A[i] << " ";
   cout << endl;
   cout << "After XOR elements: ";
   findXOR(A, n);
   for (int i = 0; i < n; i++)
   cout << A[i] << " ";
}

出力

Actual elements: 2 1 5 9
After XOR elements: 13 14 10 6

  1. C++で配列のすべての要素を同じにするための最小限の削除操作。

    問題の説明 要素が繰り返されるようなn個の要素の配列が与えられます。配列から任意の数の要素を削除できます。タスクは、配列から削除する要素の最小数を見つけて、配列を等しくすることです。 arr[] = {10, 8, 10, 7, 10, -1, -4, 12} すべての配列要素を同じにするには、強調表示された5つの要素を削除する必要があります。 アルゴリズム 1. Count frequency of each element 2. Find maximum frequecy among the frequencies. Let us call this as maxFrequncy 3.

  2. 配列内のすべてのペアワイズ連続要素の絶対差(C ++)?

    この問題では、配列内の要素の各ペアの要素間の絶対差を取得する方法を確認します。 n個の要素がある場合、結果の配列にはn-1個の要素が含まれます。要素が{8、5、4、3}であると仮定します。結果は|8-5|になります=3、次に| 5-4 | =1、| 4-3 |=1。 アルゴリズム pairDiff(arr、n) begin    res := an array to hold results    for i in range 0 to n-2, do       res[i] := |res[i] – res