C语言题目:在拥有0-n的整数的数组中,缺失了一个数,通过按位异或,找到这个数,并打印出来.
原理:
按位异或(^):相同为0,不同为1.
所以,两个数字按位异或最后为0,(a^a=0)
创建一个数x=0
先让x异或上0-n的数字
再让此时的x异或上数组里的每个数字
这样相同的数字就会消掉,只会留下不同的数字,而那个不同的数字就是缺失的数字.
先创建一个数组arr[],并通过sizeof()函数计算元素个数
创建一个x的变量来记录缺失的值
然后通过for循环让x异或上0-n的数字
再通过循环让x异或上数组里的每个数字
这样数组里有的数都消掉了,只剩下缺失的那个数字了,这样就可以打印出来了
通过查看arr[]数组,可知:缺失的就是2
如果有错,希望纠错!