美文网首页
leetcode--342--4的幂

leetcode--342--4的幂

作者: minningl | 来源:发表于2020-07-28 16:03 被阅读0次

    题目:
    给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。

    示例 1:

    输入: 16
    输出: true
    

    示例 2:

    输入: 5
    输出: false
    

    链接:https://leetcode-cn.com/problems/power-of-four

    1、4的幂首先说明它是2的幂,即 num>0 and num&(num-1)==0,这里的主要原因是如果一个数是2的幂的话,那它转换成二进制的话首位是1,其他位均为0,则其与num-1 & 的话即为0
    2、如何判断是2的幂,且是4的幂,即num与 二进制数(1010101010)& 即可,这个二进制数的16进制表示结果为 0xaaaaaaaa

    Python代码:

    class Solution(object):
        def isPowerOfFour(self, num):
            """
            :type num: int
            :rtype: bool
            """
            return num>0 and num&(num-1)==0 and num&0xaaaaaaaa==0
    

    相关文章

      网友评论

          本文标题:leetcode--342--4的幂

          本文链接:https://www.haomeiwen.com/subject/ncgfrktx.html