0
点赞
收藏
分享

微信扫一扫

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

zhoulujun 2022-02-12 阅读 157
c语言
    int arr[9] = { 1, 2, 3, 4, 5, 4, 3, 2, 1};
	int i = 0;
	int num = 0;
	for (i = 0; i < 9; i++)
	{
		num ^= arr[i];
	}
	printf("%d\n", num);

亦或( ^ )的作用是位运算时,相同为0,相异为1。

则1 ^ 1 == 0;

2 ^ 2 == 0;

3 ^ 3 == 0;

4 ^ 4 == 0;

……

num ^ 5 = 5;

最终留下的即未成对出现的数字

举报

相关推荐

0 条评论