描述
輸入乙個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 ...