目录
题目
- 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x
示例 1:
输入:n = 27
输出:true
示例 2:
输入:n = 0
输出:false
示例 3:
输入:n = 9
输出:true
示例 4:
输入:n = 45
输出:false
法一、迭代
class Solution:
def isPowerOfThree(self, n: int) -> bool:
while n > 1: #不断让n除以3
if n % 3 != 0: #如果n不能被3整除
return False #返回False
n //= 3 #n除以3后的商数赋给n
return n == 1 #最后能不能被3整除,n为1表示能被整除,返回True,否则返回False
class Solution:
def isPowerOfThree(self, n: int) -> bool:
while n>=3:n/=3 #这个地方用/
return True if n==1 else False
- /:返回的是浮点数;//:返回的是向下取整的值
- 5/3的结果为1.666666...,5//3的结果为1
法二、递归
class Solution:
def isPowerOfThree(self, n: int) -> bool:
if n==1:return True
if (n == 0 or n % 3 != 0): return False
return self.isPowerOfThree(n/3)
标签:返回,False,示例,self,326.3,return,isPowerOfThree
From: https://www.cnblogs.com/lushuang55/p/17825903.html