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

C++で連続する要素のXORを使用して配列の要素を検索する


n個の要素のリストを見つける必要があると考えてください。ただし、実際の配列の2つの連続する要素のXOR値があります。また、実際の最初の要素が示されています。したがって、配列要素がa、b、c、d、e、fの場合、指定された配列はa ^ b、b ^ c、c ^ d、d ^ e、およびe^fになります。

aという名前の最初の番号が与えられているので、すべての番号を見つけるのに役立ちます。実際の配列の2番目の要素を検索する場合は、b =a ^ arr [i]を実行する必要があり、2番目の要素c =b ^arr[1]などを実行する必要があります。

#include<iostream>
using namespace std;
void findActualElements(int a, int arr[], int n) {
   int actual[n + 1];
   actual[0] = a;
   for (int i = 0; i < n; i++) {
      actual[i + 1] = arr[i] ^ actual[i];
   }
   for (int i = 0; i < n + 1; i++)
      cout << actual[i] << " ";
}
int main() {
   int arr[] = { 12, 5, 26, 7 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int a = 6;
   findActualElements(a, arr, n);
}

出力

6 10 15 21 18

  1. ヒープソートアルゴリズムを使用して10個の要素の配列をソートするC++プログラム

    ヒープソートは、バイナリヒープデータ構造に基づいています。バイナリヒープでは、親ノードの子ノードは最大ヒープの場合はそれ以下であり、親ノードの子ノードは最小ヒープの場合はそれ以上です。 ヒープソートのすべてのステップを説明する例は次のとおりです。 並べ替え前の10個の要素を含む元の配列は-です 20 7 1 54 10 15 90 23 77 25 この配列は、max-heapifyを使用してバイナリ最大ヒープに組み込まれています。配列として表されるこの最大ヒープは、次のように与えられます。 90 77 20 54

  2. ポインタを使用して配列の要素にアクセスするC++プログラム

    ポインタは、変数のメモリ位置またはアドレスを格納します。つまり、ポインタはメモリ位置を参照し、そのメモリ位置に格納されている値を取得することは、ポインタの逆参照と呼ばれます。 ポインタを使用して配列の単一の要素にアクセスするプログラムは、次のようになります- 例 #include <iostream> using namespace std; int main() {    int arr[5] = {5, 2, 9, 4, 1};    int *ptr = &arr[2];    cout<<&q