一、描述:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
二、程序:
因为a^a为0,b ^0=b,所以可以使用异或运算。
#include<stdio.h>
#include<windows.h>
int main(){
int a[] = { 1, 2, 3, 4, 5, 4, 3, 2, 1 };
int i = 0;
int m = 0;
int num = sizeof(a) / sizeof(a[0]); //求数组长度
for (; i<num; i++){
m = m^a[i];
}
printf("这个数字为:%d\n", m);
system("pause");
return 0;
}