关闭

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

933人阅读 评论(0) 收藏 举报
分类:
#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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:54791次
    • 积分:660
    • 等级:
    • 排名:千里之外
    • 原创:174篇
    • 转载:9篇
    • 译文:0篇
    • 评论:2条
    关于博主
    github:https://github.com/hanxiaojing Email: hanjing_1995@163.com 原51.cto: http://10740184.blog.51cto.com 欢迎来访~
    文章分类
    最新评论