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