一組數據中只有一個數字出現了一次。其他所有數字都是成對出現的。請找出這個數字。(使用位運算)

一組數據中只有一個數字出現了一次。其他所有數字都是成對出現的。請找出這個數字。(使用位運算)

解:程序:

#include<stdio.h>

int main()

{

int arr[] = { 1,3,3,1,4,9,4,5,5 };

int i = 0;

int len = sizeof(arr) / sizeof(arr[0]);

for (i = 1; i < len; i++)

{

arr[0] = arr[0] ^ arr[i];

  //將這組數中所有數取按位或,由於相異爲1,相同爲0,故位運算剩下爲1的就是單數

}

printf("這個單數是:%d", arr[0]);

return 0;

}

結果:

這個單數是:9請按任意鍵繼續. . .


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章