题目描述:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。
主要思想:
通过将数组中所有数字的二进制进行与( ^ )运算,由于相同的数字与的结果为0,所以最后剩下的数字即为只出现过一次的数。
完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
#define N 9 //N一定是奇数
int main()
{
int i = 0;
int a[N] = { 0 };
int ret = 0;
printf("请输入%d个数据:",N);
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < N; i++)
{
ret ^= a[i]; //用前面的结果继续运算
}
printf("%d\n", ret);
system("pause");
return 0;
}
继续更新了位运算的引用题目,求两个数的平均数,欢迎查看和留言哦:https://blog.csdn.net/ly_6699/article/details/83930980