35.编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
代码如下:
#include <stdio.h>//编译预处理命令
int main(){//定义主函数
int arr[9] = { 1, 2, 3, 4, 5, 4, 3, 2, 1 };//定义一个大小为9的整形数组
for (int i = 1; i < 9; ++i){//遍历数组每个元素
//对同一个数异或两次会不变
//eg:第一次:0001 第二次:0011
// 0010 0010
// 0011 0001
arr[0] ^=arr[i];
}
printf("%d\n", arr[0]);//输出出现一次的数
return 0;//函数返回值为0;
}
运行结果: