# 递归
# 设定好边界条件,然后依次递归到最小值,判断即可。
class Solution:
def isPowerOfFour(self, n: int) -> bool:
if n <= 0:
return False
while n != 1:
if n % 4 != 0:
return False
n /= 4
return n == 1
方法二:递归(优化版)
思路:若被 4 整除,更新原整数,依次循环到 1 判断即可。
# 递归(优化版)
# 若被 4 整除,更新原整数,依次循环到 1 判断即可。
class Solution:
def isPowerOfFour(self, n: int) -> bool:
while n > 0 and n % 4 == 0:
n //= 4
return n == 1
方法三:暴力循环
思路:用 math.pow() 方法计算幂值,依次循环判断即可。
# 暴力循环
# math.pow()方法计算幂值,依次循环判断即可。
class Solution:
def isPowerOfFour(self, n: int) -> bool:
for i in range(31):
if math.pow(4, i) == n:
return True
return False
方法四:暴力循环
思路:设定一个初始整数,乘以 4 的倍数,然后循环判断即可。
# 暴力循环
# 设定一个初始整数,乘以 4 的倍数,然后循环判断即可。
class Solution:
def isPowerOfFour(self, n: int) -> bool:
ans = 1
while ans < n:
ans *= 4
return ans == n