C语言中分治的思想-位运算

(1) 有101个整数,其中有50个数出现了两次,1个数出现了一次, 找出出现了一次的那个数。

位运算的思想:任何数和零异或得到自己,任何数自己异或得到0。

eg1.{2,1,5,1,2,2}

num=0 0000 0000
2 0000 0010
1 0000 0001
5 0000 0101
1 0000 0001
2 0000 0010
2 0000 0010

可以发现,数字5出现一次,用0依次与每个数异或一下,从0000 0010,0000 0011,0000 0110,0000 0111,0000 0101。可以发现最终出现的结果是出现一次的那个数字,为5。

 

上一篇:Demo06 //位运算


下一篇:逻辑运算符