c 面試寶典題 8 求下面函式的返回值(微軟)答案

2023-02-08 18:26:26 字數 1179 閱讀 1923

1樓:

關鍵是要理解 x = x & (x-1)這條語句。一眼看不出來的話,可以舉個實際的例子。

因為與運算子&是個二進位制的運算子號,所以首先把十進位制的數轉成二進位制,在考慮。

舉個例子:x = 10,二進位制形式為 1010;

那麼 1010

& 1001

__________

1000

再舉個例子,x的二進位制形式為10010110

那麼10010110

& 10010101

_____________

10010100

發現x&(x-1)操作的結果,就是導致x的二進位制形式中的1減少了一位。其實原因很簡單,x-1總是從x中借走一個最低位的1,因此&操作的結果就導致最低位1丟失。

明白了這一點,就不難看出函式func()其實就是計算 x 的二進位制表示中1的個數。

比如:計算fun(9999)

因為 9999 = 8192 + 1024 + 512 + 256 + 15

所以1的個數就是: 1 + 1 + 1 + 1 + 4 = 8(個)

2樓:黑洞之謎

好好看了一下,發現這個函式是用來測試輸入數字中二進位制表示方式中'1'的個數的程式,演算法設計的確巧妙,你可以試試!

高分救助:幫我答幾道c語言題

跪求c++題目答案。。。。 輸入一個正整數n,計算並輸出下面算式的值。要求定義和呼叫函式total(n),

3樓:匿名使用者

double total(int n)

void main()

求c++面試題及答案

4樓:匿名使用者

程式設計師面試寶典 第2版 ,關於c/c++的。

我有電子版,給我郵箱好傳給你

5樓:匿名使用者

6樓:匡金後方

自己在網上一搜就出來了。因為c/c++的面試題是非常多的。

7樓:刁姝環曼文

我是在這上面看的。c++面試題

C語言程式設計題 編寫函式,用於求兩個數中的較小數用主函式

int min int a,int b return a 如下 include int comp int a,int b int main void 用c語言編寫 編寫一個函式,要求在主函式中輸入兩個數,輸出其中最大值。比較兩個數的大小可以使用三目運算子 三目運算子 表示式1 表示式2 表示式3 其...

C語言題,求大神解答,c語言的題,求大神解答

include int main for i 0 iprintf d az i printf n for i 0 iprintf d af i printf n return 0 c語言的題,求大神解答 解 1 a項錯誤 有些不可見字元可放入緩衝區,例如 回車 空格。b項錯誤 有些輸入函式有緩衝區,...

求這題的解析。第8題,第8題,求解析

媽媽每年都做蛋糕 蛋糕被製作 被動時態 be made 複數 所以are made 蛋糕是被製作,所以用被動語態,又因為是複數,所以用are made 被動語態 passive voice 是動詞的一種形式,用以說明主語與謂語動詞之間的關係。英語的語態共有兩種 主動語態和被動語態。主動語態表示主語是...