找出陣列中出現奇數次的元素
阿新 • • 發佈:2019-02-10
題目描述|:給定一個包含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 ************************/