1. 程式人生 > >找出陣列中出現奇數次的元素

找出陣列中出現奇數次的元素

題目描述|:給定一個包含n個整數的陣列a,其中只有一個整數出現奇數次,其他整數都出現偶數次,請找出這個整數 

使用異或操作,因為值相等的兩個元素異或後結果為0,那麼將陣列的所有元素進行異或以後,結果就是出現奇數次的那個整數 

#include<iostream>
using namespace std;
int Find_Number_appear_old_times(int a[], int n)
{
    int ret= a[0] ;
    for(int i = 1; i < n; i++)
    ret^= a[i] ;
    return ret ;
}
int main()
{
    //Test code
    int test[] = {2013,1991,1991,1991, 1992, 1993, 1994, 1994, 1993, 1992, 1993, 1993, 2013} ;
    cout<<"Number_appear_old_times:\n"
        <<Find_Number_appear_old_times(test, sizeof(test)/sizeof(test[0])) << endl ;
}
/***********************
執行結果:
Number_appear_old_times:
1991


************************/