一組數據中只有一個數字出現了一次。其他所有數字都是成對出現的。請找出這個數字。(使用位運算)
解:程序:
#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請按任意鍵繼續. . .