幾個面試題

筆者注:以下的題目均是筆者從各種書籍,網站蒐羅而來,未能一一標明出處,請見諒。如有版權問題,請聯繫筆者,筆者會在最短時間內處理。

1.有兩個變量a,b,不使用if,switch,?:或其他判斷語句,找出兩個數中的較大者。【美國某公司面試題】

int max = ((a+b) + abs(a-b))/2;

2.不用循環,用一個表達式判斷整數X是否是2的冪數。

!(X&(X-1))
/*若(X&(X-1)) == 0,則X是2的冪數,否則,不是。*/

3.不借助中間變量,實現a,b兩個數的值的互換。

(1)/*a+b超界可能性*/
a = a+b;
b = a-b;
a = a-b;
(2)/*異或操作*/
a = a^b;
b = a^b;
a = a^b;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章