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,7,1,3,5};让每个数依次异或则就剩...

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

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

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

     #include #include #include int get_num(int arr[],int sz) {     ...

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

//给⼀组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。 #include int find_one_pos(int num) //找一个为为1的位置 { int ...

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

// 给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数 #include int find_one(int arr[], int len) { int i = 0; ...

数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字

数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字 前一段,同学面试问了一个问题就是标题上的这个问题了。想了一下最起码有一下几种做法。 做法一: 可以对数组进行排序,这样如果数组是成对出现的...

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

一个整型数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。...

用异或实现查找只出现一次的数字

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

C语言中关于取三位数的各各位数的单个数字问题

在BCB下 1=9 了|||367除以100 =3367除以10取10余=6367取10余=7 3 1=8 2 1)就是6 a[j]); }}|||位置是固定的 只需要判断/0的位置就...
  • bugrnm
  • bugrnm
  • 2008年10月20日 09:18
  • 909

TCP学习~~

序号 占4字节。序号范围是[0,2^32-1],共2^32  (4 284 967 296)个序号。 序号增加到2^32-1后,下一个序号又回到0.也就是说,序号使用mod 2^32运算。 TCP...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(
举报原因:
原因补充:

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