C语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(

原创 2016年05月30日 17:13:47
#include<stdio.h>


int main()
{
     int arr[]={1,3,3,1,4,6,4,5,5};
     int i=0;
     int len=sizeof(arr)/sizeof(arr[0]);
     
     /*找出单独的数,就将数组中的每个数全都取异或运算,
     如:arr[1]={1,3,3,1,4}
     01^11=10,再用这个结果10^11=01,01^01=00,000^100=100=4
    独的数结果就为1
     (1)a=a^b    c^a相当于c^(a^b)
     (2)自己异或自己两次相当于没有异或,还是自己。*/
     
     for(i=1;i<len;i++)
     {
          arr[0]=arr[0]^arr[i]; 
     }
     printf("the single number is:%d",arr[0]);
     return 0; 
}

wKioL1YrElCgqiIdAAC2aVZv5Mo085.jpg

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

注意:若数组总和为单数且执行两两匹配一定有单数             若数组总和为双数则先求最大奇数组的单数与最后一个元素比较,若不同则有两个单数,若相同则没有单数     如{ 1, 3, 5...
  • as2891877678
  • as2891877678
  • 2016年10月18日 19:04
  • 185

【c语言】给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数

// 给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数 #include int find_one(int arr[], int len) { int i = 0; ...
  • zhaoyaqian552
  • zhaoyaqian552
  • 2015年06月30日 16:00
  • 562

【C语言】给一组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。

//给⼀组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。 #include int find_one_pos(int num) //找一个为为1的位置 { int ...
  • doudouwa1234
  • doudouwa1234
  • 2015年06月30日 15:48
  • 988

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。 本题思路: 1.将0与数组每个元素依次亦或的结果就是两个只出现一次的元素亦或的值,相同元素的二进制位是相同的,...
  • qq_23556715
  • qq_23556715
  • 2016年08月19日 14:53
  • 1887

【C语言】一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!...
  • yaotengjian
  • yaotengjian
  • 2017年06月25日 18:39
  • 265

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字

从头到尾依次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结果。因为其他数字都出现了两次,在异或中全部抵消掉了。由于这两个数字肯定不一样,那么这个异或结果肯定不为0,也就是说...
  • shine_zyd_way
  • shine_zyd_way
  • 2016年07月31日 22:40
  • 2714

数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次

本文地址:http://blog.csdn.net/morewindows/article/details/12684497转载请标明出处,谢谢。 欢迎关注微博:http://weibo.com...
  • baoendemao
  • baoendemao
  • 2014年10月09日 09:59
  • 2118

整型数组里只出现一次的数字--[c语言笔试题]

找出数组内只出现一次的数字,是一系列的笔试题,来考察大家对位运算的掌握,下面我们从最简单的开始来看看吧! 一、题目:一个整型数组里只有一个数字出现了一次,其余数字都出现了两次,请写程序找出出现了一次的...
  • XHfight
  • XHfight
  • 2016年06月19日 15:00
  • 1297

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字 分析: #define _CRT_SECURE_NO_WARNINGS 1  #include #include int...
  • baidu_37964071
  • baidu_37964071
  • 2017年06月01日 22:21
  • 113

经典算法题1:找出数组中只出现一次的数字,其它数字都出现了两次

一个整型数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。...
  • u011826264
  • u011826264
  • 2014年09月14日 13:19
  • 4091
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(
举报原因:
原因补充:

(最多只允许输入30个字)