原題:兩個整型數,不准用if 、switch 、?:等判斷語句求出兩者較大者(更有甚者只讓用一條語句)
最近的筆試題中,此題出現頻率不小,論壇上也時有人問起,此文給出c語言版的一種解決方案(得較小者同理)。
為說明問題方便,不使用一條語句,理解思路後稍作改動便可以換成一條語句。
**如下:
/* 不准使用任何判斷語句和庫函式,獲取兩個整型資料中的較大值 */
#include /* 獲得兩引數差的符號位 */
int bit(int a, int b)
/* 獲得兩數中的較大者 */
int greater(int a, int b)
void main()
不用任何比較判斷找出兩個數中較大的數
題目 給定兩個32位整數a和b,返回a和b中較大的。要求 不用任何比較判斷。將判斷轉換位運算實現 sign獲取符號位,flip翻轉符號位 判斷a b的符號位 符號位為0表示為正,符號位為1表示為負 為正返回a,為負返回b 因此same flip sign a b a sign a b b返回同號兩者...
不用比較找出兩個數比較大的數
看到這個題目,我的腦中真的是 正文 我們通常怎麼比較兩個數的大小呢?c a b 若c 0則a b 若c 0 則a若c 0則a b 那怎麼用c語言表示呢?我們知道32位整數中有乙個位元位為符號標誌位,正數為0,負數為1。即判斷c的標誌位,我們就可以知道a大還是b大 int symbol int num...
Python中判斷語句常見的布林值輸出。
在python中執行判斷語句時,常會使用布林型別進行判斷。下面將對出現的幾種情況進行程式驗證說明。空字串 值為假 if print true else print false 結果為 false2.字串不為空時,值為真 if string print true else print false 結果...