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

2021-07-14 21:44:44 字數 463 閱讀 7330

描述

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

知識點字串,查詢

執行時間限制

10m記憶體限制

128輸入

輸入乙個整數(int型別)

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

樣例輸入

5樣例輸出

2 思路:

如果整數n的二進位制中有k個1,則需要迴圈k次,方法是不斷清除二進位制中最低位的1,直至n為0;

如何清除n的二進位制最低位1,n = n & (n - 1);

舉例子:對於6來說,其二進位制是0110,進行上述操作:6(0110)& 5(0101) =  4(0100),最低位的1已經清除

源**:

#include 

using namespace std;  

void

main()

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

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

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

輸入乙個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。輸入描述 輸入乙個整數 int型別 輸出描述 這個數轉換成2進製後,輸出1的個數 輸入 5 輸出 2 問題的關鍵在於十進位制轉二進位制後1的個數 普通方法,通過找規律計算 十進位制二進位制1的個數 除數 2商餘數 商 2商餘數1...

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

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