zoukankan      html  css  js  c++  java
  • 476. Number Complement(补数)

    Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.

    Note:

    1. The given integer is guaranteed to fit within the range of a 32-bit signed integer.
    2. You could assume no leading zero bit in the integer’s binary representation.

      Example 1:

      Input: 5
      Output: 2
      Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
      

      Example 2:

      Input: 1
      Output: 0
      Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
    3. 思路:给定一个正整数,输出它的补数。补数的策略是通过翻转二进位表示。
    4. 1.求出该数的二进制位数; 
      2.通过给定数num和相同位数的二进制数(全为1)进行异或,即可求出补数。
    5.  public int findComplement(int num) {
                  
                  int ans = 0;//the count of the num's bits
                  int temp = num;//copy of the num
                  while(temp != 0){
                      ans++;
                      temp /= 2;
                  }
                  return num ^ (int)(Math.pow(2,ans)-1); 
          }

      pow() 函数用来求 x 的 y 次幂(次方),其原型为:
               double pow(double x, double y);

  • 相关阅读:
    gin内置验证器使用
    model
    work,工作模式
    orm框架
    simple模式下rabbitmq的代码
    rabbitmq介绍
    订阅模式
    路由模式
    redis五大数据类型
    Go操作redis
  • 原文地址:https://www.cnblogs.com/sunli0205/p/6422642.html
Copyright © 2011-2022 走看看