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.

    解题思路:
    这题一种比较好的解法是使用bitset类,但平时没用过,类的具体方法不记得,所以使用笨方法。
    首先计算得到输入整数的位数n,通过观察可以发现要得到的结果是2^n - 1 - 输入整数的值。

    代码:
     1 class Solution {
     2 public:
     3     int findComplement(int num) {
     4         int length = 0, tmp = num;
     5         while (num != 0) {
     6             num /= 2;
     7             length++;
     8         }
     9         return pow(2, length) - 1 - tmp;
    10     }
    11 };
  • 相关阅读:
    第六次站立会议
    第四次站立会议
    第五次站立会议
    用户场景描述
    第三次站立会议
    第二次站立会议
    maven install 报错Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin
    eclipse配置maven
    maven下载和配置
    maven学习笔记
  • 原文地址:https://www.cnblogs.com/gsz-/p/9445675.html
Copyright © 2011-2022 走看看