zoukankan      html  css  js  c++  java
  • 【LeetCode】231. Power of Two

    题目:

    Given an integer, write a function to determine if it is a power of two.

    提示:

    此题判断输入的数是否是2的次方。如果一个数是2的次方,那么它的二进制数只有一个1,其他都是0。根据这一定理,我们可以用如下方法解决这一问题:

    1. 第一种方法:将输入的数字转化为bitset,然后用count函数计算包含的1的个数;
    2. 第二种方法:计算n&(n-1),其中&是按位与。如果n是2的次方,那么这一计算的结果将会是0。

    代码:

     第一种方法:

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            if (n < 0) return false;
            bitset<32> bits(n);
            if (bits.count() == 1) return true;
            else return false;
        }
    };

    第二种方法:

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            return n > 0 && !(n & (n - 1));
        }
    };
  • 相关阅读:
    svn命令
    Lambda 表达式
    JAVA 探究NIO
    JAVA I/O系统
    MySQL 锁
    spring boot 集成 zookeeper 搭建微服务架构
    架构演化
    JAVA 集合
    spring boot 发送邮件
    MySQL 隔离级别
  • 原文地址:https://www.cnblogs.com/jdneo/p/4775958.html
Copyright © 2011-2022 走看看