※ 引述《jehovah (Lucius)》之铭言:
: 朋友面试遇到的问题~
: C里面两个阵列a b,元素都一样,只是b比a多了一个元素
: 如何不用比较子> < ==等等 找出不同的元素
: 想了一阵子没有头绪~可以指点一些方向吗^^
这题其实很简单,不过如果标准答案supposed是这个的话
我会觉得这家公司块陶啊....
假设这两个阵列的element都是c(c可以是int char...etc)
首先我们先用bitwise查出他们是在第几个bit不同
a ^ b, 然后找出第一个1就是第几个bit不同
000000000000000000000000111111111111111111111111.....
假设sizeof(c)是1(也就是8bit) 也就是a b前三个(0 1 2)都相同
b[3]就一定是多出来的那个,ok 所以要怎么找出来呢,很简单
我们把a[3]全部填1 a b就会等长了,最后我们把a b做and bitwise
假设出来是d, 那d[3]就是多出来的那个数字
这不叫做技术 这叫做脑筋急转弯.....