您当前的位置: 首页 > 

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2 的幂(判断)

IT之一小佬 发布时间:2021-08-22 22:55:26 ,浏览量:0

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

示例 1:

输入:n = 1
输出:true
解释:20 = 1

示例 2:

输入:n = 16
输出:true
解释:24 = 16

示例 3:

输入:n = 3
输出:false

示例 4:

输入:n = 4
输出:true

示例 5:

输入:n = 5
输出:false

示例代码1:

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        if n == 1:
            return True
        i = 1
        while i:
            if 2 ** i == n:
                return True
            else:
                if 2 ** i > n:
                    return False
            i += 1

示例代码2(判断是否为最大 22 的幂的约数):

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        BIG = 2 ** 30
        return n > 0 and BIG % n == 0

题目给定的 32 位有符号整数的范围内,最大的 22 的幂为 2^{30} = 10737418242 。我们只需要判断 n 是否是 2^{30}的约数即可。

示例代码3:

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n > 0 and n & (n-1) == 0

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0374s