牛客刷題之二進位制中1的個數

2021-09-26 01:33:26 字數 522 閱讀 4640

輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。

解題思路:

按照常規想法,如果是正數,則直接轉換為二進位制求1的個數即可。

如果是負數,先轉換為正數,然後取反加1。

public class solution 

n = n / 2;

}return count;

}else

//求其二進位制表示

for(int i=0;n!=0;i++)else

n = n /2;

}//每位都進行取反,注意,包括符號位

for(int i =0;i<32;i++)else

}//末尾加1

if(array[0]== 0)else

array[i] = 1;

}//統計1的個數

int count1 = 0;

for(int i =0;i<32;i++)

}return count1 ;}}

}

牛客刷題之二進位制中1的個數

輸入乙個整數,輸出該數32位二進位制表示中1的個數。其中負數用補碼表示。採用兩種方法 第一種,為了避免死迴圈,我們可以不右移輸入的數字i 1 首先把i和1做與運算,判斷i的最低位是不是為1。2 接著把1左移一位得到2,再和i做與運算,就能判斷i的次低位是不是1。3 這樣反覆左移,每次都能判斷i的其中...

演算法刷題 二進位制中1的個數

問題 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。思路 將數字轉化為二進位制之後,轉化為字串陣列形式,再迴圈遍歷陣列,找出 1 的個數。解釋 這是最low的方法我認為,十進位制轉化為二進位制可以通過自己程式設計邏輯實現,也可以用自帶的庫實現,integer.tobinaryst...

刷題 二進位制中1的個數 python

題目 輸入乙個整數,輸出該數32位二進位制表示中1的個數。其中負數用補碼表示。思路 一種是直接求補碼,然後統計1的個數 另一種是通過n n 1 每次消除最低位的1,直至消除至0,所需要的消除次數即為1的位數。code 第一種 coding utf 8 class solution def buma ...