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;
}
这个问题的测验