華為機試 求int型資料在記憶體中儲存時1的個數

2021-10-11 23:38:02 字數 956 閱讀 7308

輸入乙個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。

輸入描述:

輸入乙個整數(int型別)

輸出描述:

這個數轉換成2進製後,輸出1的個數

輸入 5

輸出 2

問題的關鍵在於十進位制轉二進位制後1的個數

普通方法,通過找規律計算

十進位制二進位制1的個數

除數/2商餘數

商/2商餘數1

0111/2012

1022/2103

1123/2114

1001

4/22

02/210

5101

25/221

2/2106

1102

6/23

03/211

7111

37/231

3/21

1

通過以上計算可以看出規律:1的個數 = a%2(遞迴)+ a/2(最後一次)

通過&運算的特徵計算

// 思路1實現,通過遞迴實現

public

class

main

// 通過遞迴實現

private

static

intcount

(int a)

}

// 思路2實現,通過&運算實現

public

class

main

system.out.

println

(count);}

}

小夥伴如果想測試的話,可以直接到牛客網這個鏈結做測試

華為機試-牛客網

華為OJ 求int型資料在記憶體中儲存時1的個數

求int 型資料在記憶體中儲存時 1的個數 輸入乙個int 型資料,計算出該 int型資料在記憶體中儲存時 1的個數。輸入描述 輸入乙個整數 int型別 輸出描述 這個數轉換成 2進製後,輸出 1的個數 輸入例子 5 輸出例子 2 解答 include include include include...

華為OJ 求int型資料在記憶體中儲存時1的個數

描述 輸入乙個int型資料,計算出該int型資料在記憶體中儲存時1的個數。知識點字串,查詢 執行時間限制 10m記憶體限制 128輸入 輸入乙個整數 int型別 輸出這個數轉換成2進製後,輸出1的個數 樣例輸入 5樣例輸出 2 思路 如果整數n的二進位制中有k個1,則需要迴圈k次,方法是不斷清除二進...

求int型資料在記憶體中儲存時1的個數

1.求int型資料在記憶體中儲存時1的個數 輸入乙個int型資料,計算出該int型資料在記憶體中儲存時1的個數。我們很容易想到如下方法 include using namespace std int main cout 在對 進行測試時輸入負數無法得出結論,下面的方法將解決這一問題。include ...