zoukankan      html  css  js  c++  java
  • 22、输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

    输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

    思路:
    n &(n-1)把n的最右边的1去掉,用count++计算1的个数
     eg: 101 & 100 = 100
     
     1 class Solution {
     2 public:
     3      int  NumberOf1(int n) {
     4          int count = 0;
     5             while(n!=0){
     6                 count++;
     7                 n = n&(n-1);
     8             }
     9              
    10             return count;
    11      }
    12 };
  • 相关阅读:
    装饰者模式
    代理模式
    享元模式
    模板模式
    命令模式
    建造者模式
    单例模式
    观察者模式
    迭代器模式
    访问者模式
  • 原文地址:https://www.cnblogs.com/olivegyr/p/7050416.html
Copyright © 2011-2022 走看看