劍指Offer精選程式設計面試題15 二進位制中1的個數

2021-10-02 01:39:49 字數 760 閱讀 6180

2)思路

3)**與測試

要求:輸入乙個整數,輸出該數二進位制表示中1的個數。如輸入9,則輸出2。

總體來分三種

思路一弊端:此操作輸入負數的時候容易引發死迴圈,因為負數移位的時候最高位會設為1,容易陷入死迴圈。

思路二弊端:此操作的迴圈次數為整數二進位制的位數,為常規解法。

思路三優勢:此操作的迴圈次數為整數二進位制的中1的個數,為最優解法。

(1)**

#pragma once

#include

using

namespace std;

/*思路三*/

intnumof3

(int n)

return count;

}/*思路二*/

intnumof2

(int n)

flag=flag <<1;

}return count;

}/*思路一*/

intnumof1

(int n)

n=n>>1;

}return count;

}

(2)測試**

主要測試正數,負數,0。

/*主程式*/

#pragma once

#include

#include

#include

"offer_15.h"

intmain()

劍指Offer精選程式設計面試題14 剪繩子

2 思路 3 補充知識 4 與測試 要求 給你一根長度為n的繩子,請把繩子剪成m段 m,n都是整數,n 1 並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 x k 1 x x k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的...

劍指Offer精選程式設計面試題4 二維陣列中的查詢

2 思路 3 小結 4 要求 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。樣例 注意題目說的陣列,無論是列還是行,都是遞增的,所有這個矩陣,是個有序矩陣,則可以根據這個矩陣的特點...

劍指offer 面試題(1)

這兩天通過做作業接觸了 劍指offer 這本書 覺得裡面的面試題真是異常經典,當你看到那一道一道面試題時,對自我的做題筆試能力肯定會大有脾益 平常可以多做練習,養成乙個習慣 好了,廢話不多說了,直接上題吧 我已經感到 了 第一道 劍指offer 面試題14 調整陣列使奇數全部都位於偶數前面。題目 輸...