統計整數的二進位制中1的個數。

2022-09-14 08:51:06 字數 753 閱讀 1937

最近都在牛客網刷題,有空就來寫下部落格,不得不說牛客網是個好地方!

碰到這樣一道題:輸入乙個整數,輸出該數二進位制表示中1的個數。

j**a語言挺好的,畢竟封裝了這麼多庫,很多現有的函式,刷題也是666。

廢話不說,輸入整數,可將其先轉換為二進位制,然後再進行統計1的個數。

下面貼出**:

import j**a.util.scanner;

public class main {

public static void main(string args){

scanner in = new scanner(system.in);

while(in.hasnextint()){  //多組資料輸入

int n = in.nextint();

int count = 0;  

char ch = integer.tobinarystring(n).tochararray();  //將n轉換為二進位制字串,再轉為字元陣列

for(int i=0;i寫個部落格怎麼感覺有點寫日記的感覺,話說小學時候還是挺喜歡寫日記的!雖然每天記流水賬,還總有種要被老師誇的趕腳!

其實也可以這樣-->

integer.tobinarystring().replace("0","").length();

轉為二進位制字串後,呼叫replace()將"0"換為"",其實就相當於把0去掉,那剩下的全都是1了,再呼叫length()就可以統計出1的個數了。

新思路get!!!

中 統計整數二進位制1的個數

輸入乙個整數,輸出該數32位二進位制表示中1的個數。其中負數用補碼表示。這道題沒什麼難度,主要是補碼的使用。一般我們是先轉正數原碼,然後取反再加1。這裡介紹乙個比較方便的演算法,即將正數原碼掃瞄,遇到第乙個1不操作,此後每乙個數都取反 包括符號位,注意是從右往左 當然,你也可以先把符號位設定好。pu...

整數二進位制中1的個數

輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。如果是0,返回0 如果是正整數,除二取餘法 如果是負數 3.1 如果是 2147483648 int表示最大絕對值的負數 其補碼是1000 0000 0000 0000 0000 0000 0000 0000,故返回 1 3.2 其他...

整數二進位制中1的個數

要統計乙個整數二進位制中1的個數,首先我們會想到最簡單的方法就是 2 再 2,然後判斷每一位是否為1。但是,如果這是乙個很大的數,頻繁的除法運算效率不是很高。而位運算比乘除法效率高,所以我們就來用位運算解決這道題。首先方法一,當num大於0時,判斷num 1 的值,即可知道最後一位的值,迴圈每次nu...