题目:
编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//思路:将所有数字全部异或,最后得到的值即为只出现一次的数字
int Find_one_num(int arr[],int size)
{
int ret = 0;
for (int i = 0; i < size; i++)
{
ret = ret^arr[i];
}
return ret;
}
int main()
{
int arr[] = { 1, 3, 5, 1, 2, 3, 5 };
int size = sizeof(arr) / sizeof(arr[0]);
int num = Find_one_num(arr, size);
printf("只出现一次的数字为:%d",num);
system("pause");
return 0;
}
运算结果: