找出数组中不是成对出现的数字
题目如下:
给一个数组, {1,1,2,2,3,3,4,4,5,6,6,7,7,8,8,9,9},其中所有的数组都是成对的,只有一个数字出现一次,找出这个数字。
思路:
相同的数字做异或计算会等于0,只需要将所有元素异或并将值相加起来,就是这个只出现了一个数字的元素。
代码:
1 int main() 2 { 3 int a[] = {1,1,2,2,3,3,4,4,5,6,6,7,7,8,8,9,9}; 4 int c=a[0]; 5 int length = sizeof(a)/sizeof(int); 6 for(int i=1;i<length;i++) 7 { 8 c = c ^ a[i]; 9 } 10 cout << c << endl; 11 return 0; 12 }