一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。找出这个数
利用异或具有交换律和结合律的性质,用一个ret依次与数组中的元素相异或,两个相同的数字就会异或为0,最后会剩下一个单独的数字,即为要找的数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int arr[11] = {0};
printf("输入11个数字\n");
for (int i = 0; i < 11; ++i) {
scanf("%d", &arr[i]);
}
int ret = 0;
for (int i = 0; i < 11; i++) {
ret = ret ^ arr[i];
}
printf("%d\n", ret);
system("pause");
return 0;
}