标签:c语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
解:程序:
#include<stdio.h>
int main()
{
int arr[] = { 1,3,3,1,4,9,4,5,5 };
int i = 0;
int len = sizeof(arr) / sizeof(arr[0]);
for (i = 1; i < len; i++)
{
arr[0] = arr[0] ^ arr[i];
//将这组数中所有数取按位或,由于相异为1,相同为0,故位运算剩下为1的就是单数
}
printf("这个单数是:%d", arr[0]);
return 0;
}
结果:
这个单数是:9请按任意键继续. . .
本文出自 “51cto” 博客,请务必保留此出处http://51cccto.blog.51cto.com/10251929/1706829
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
标签:c语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
原文地址:http://51cccto.blog.51cto.com/10251929/1706829