美文网首页
[LeetCode By Python] 342. Power

[LeetCode By Python] 342. Power

作者: 乐乐可爱睡觉 | 来源:发表于2016-06-03 17:31 被阅读110次

    一、题目

    Power of Four

    二、解题

    输入:给出一个32位的有符号数
    输出:判断是否是4的阶乘

    不能用循环和递归,首先想到是的对数函数,结果竟然给过了- -。(要进行<0的边界判断),判断是否是4的阶乘,把对数的结果转化为int,判断和原来的数是否相同(不是4的阶乘不会是一个整数)

    三、尝试与结果

    import math
    class Solution(object):
        def isPowerOfFour(self, num):
            if num <=0:
                return False
            a = math.log(num,4)
            if int(a) == a:
                return True
            else:
                return False
    

    结果:AC

    四、学习与记录

    class Solution(object):
        def isPowerOfFour(self, num):
            if num <=0:
                return False
            if num == 1:
                return True
            if (num -1)%3 == 0 and num & (num-1) == 0:
                return True
            else:
                return False
    

    说明:也是从数学的角度出发,数num是4的阶乘需要满足的条件是
    1)(num -1)%3 == 0
    2)num & (num-1) == 0

    相关文章

      网友评论

          本文标题:[LeetCode By Python] 342. Power

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