首页 > 编程语言 > 详细

Leetcode 326.3的幂 By Python

时间:2018-09-23 10:24:35      阅读:168      评论:0      收藏:0      [点我收藏+]

给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

输入: 27
输出: true

示例 2:

输入: 0
输出: false

示例 3:

输入: 9
输出: true

示例 4:

输入: 45
输出: false

进阶:
你能不使用循环或者递归来完成本题吗?

思路

循环/3看最后是不是等于1就好了

代码

class Solution(object):
    def isPowerOfThree(self, n):
        """
        :type n: int
        :rtype: bool
        """
        while n > 1 and n % 3 == 0:
            n /= 3
        return n==1

进阶

题目最后说不使用循环和递归,那就使用log函数,见注释

class Solution(object):
    def isPowerOfThree(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n <= 0:
            return False
        else:
            s = str(math.log(n,3))
            if s[-2] == '.':    #如果是3的幂那么一定是x.0格式的,也就是转换为字符串之后s[-2]一定为.
                return True
            else:
                return False

Leetcode 326.3的幂 By Python

原文:https://www.cnblogs.com/MartinLwx/p/9692046.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!