面试题->找出自然数

来源:互联网 发布:消防安全四知四会 编辑:程序博客网 时间:2024/05/17 22:55
/*
 *      有一个数列,其中的自然数都是以偶数的形式出现,只有一个自然数出现的次数为
 *      奇数次。编写程序找出这个自然数。
 *      2 3 3 4 7 1 3 4 1 2 3 1 7
 *      ret --> 1
 *
 *      利用位运算 异或(交换律和结合律)

 * */

#include <stdio.h>#define DIM(a) (sizeof(a)/sizeof(*a))int main(){        int a[] = {2, 3, 5, 7, 2, 2, 2, 5, 3, 7, 1, 1, 1};        int find = 0;        int i = 0;        for (i=0; i<DIM(a); i++) {                find = find ^ a[i];        }                printf("%d\t%d\n", sizeof(a), sizeof(*a));                printf("find = %d\n", find);        return 0;}



原创粉丝点击