面試題12:二進制中1的個數
題目:請實現一個函數,輸入一個整數,輸出該數二進制表示中1的個數。例如把9表示成二進制是1001,有2位是1。因此如果輸入9,該函數輸出2。
解答:代碼如下:
int NumberOf1(int n)
{
int count = 0;
while(n != 0)
{
n &= (n - 1);
count++;
}
return count;
}
面試題12:二進制中1的個數
題目:請實現一個函數,輸入一個整數,輸出該數二進制表示中1的個數。例如把9表示成二進制是1001,有2位是1。因此如果輸入9,該函數輸出2。
解答:代碼如下:
int NumberOf1(int n)
{
int count = 0;
while(n != 0)
{
n &= (n - 1);
count++;
}
return count;
}
void Print(TreeNode* pRoot) { queue<TreeNode*> que; int cur_count(0); int next_count(0); if (pRoo