📜  算法|位算法|问题1

📅  最后修改于: 2021-06-29 20:05:01             🧑  作者: Mango

arr [] = {9,12,2,11,2,2,2,10,9,12,10,9,11,2}的以下函数的返回值是多少,n是此数组的大小。

int fun(int arr[], int n)
{
    int x = arr[0];
    for (int i = 1; i < n; i++)
        x = x ^ arr[i];
    return x;
}

(A) 0
(B) 9
(C) 12
(D) 2答案: (B)
说明:请注意,9是唯一出现奇数次的元素,所有其他元素都出现偶数次。

如果输入数组具有除一个以外所有偶数出现的元素,则该函数将返回唯一出现奇数个元素的元素。请注意,将元素与自身进行XOR运算,将数字x与0进行XOR运算等于x。

尝试遵循完整的程序。

# include 
using namespace std;

int fun(int arr[], int n)
{
    int x = arr[0];
    for (int i = 1; i < n; i++)
        x = x ^ arr[i];
    return x;
}

int main()
{
  int arr[] = {9, 12, 2, 11, 10, 9, 12, 10, 9, 11, 2};
  int n = sizeof(arr)/sizeof(arr[0]);
  cout << fun(arr, n) << endl;
  return 0;
}

这个问题的测验