天天看點

JZ11 二進制中1的個數題目描述思路分析代碼實作

JZ11 二進制中1的個數

  • 題目描述
  • 思路分析
  • 代碼實作

題目描述

點這裡

思路分析

位運算

lowbit函數傳回最後一位1對應的數。

故每次把最後一個1減去,看能減多少次,減法次數即為1的個數。

代碼實作

class Solution {
public:
     int  NumberOf1(int n) {
         int res=0;
         while(n) n-=lowbit(n),res++;
         return res;
     }
    int lowbit(int x){return x&-x;}
};