如何判断一个数是否是2的n次方O(1)算法

2019-04-09  本文已影响0人  Haward_

题目: 如何判断一个数是否是2的n次方
思路:当一个数为2的n 次方时,整个二进制数,只有本位是1 其他位为0,如果我们给这个数减一,那么本位变为0 其他位全部变成1;我们可以通过&运算, 如果为0即为2的n次方;

class Solution:
    def is2n(self, n):
        if n == 0:
            return True
        res = n & (n-1)
        return res==0


if __name__ == "__main__":
    so = Solution()
    n = 15
    res = so.is2n(n)
    print(res)
上一篇 下一篇

猜你喜欢

热点阅读