码迷,mamicode.com
首页 > 其他好文 > 详细

一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)

时间:2015-10-27 17:47:13      阅读:158      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!