※ 引述《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]就是多出來的那個數字
這不叫做技術 這叫做腦筋急轉彎.....