给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。
示例 1:
输入: 16 输出: true
示例 2:
输入: 5 输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
方法一:依旧采用递归,只需要稍微修改一下之前的程序即可
class Solution(object):
def isPowerOfFour(self, n):
"""
:type num: int
:rtype: bool
"""
if n <= 0:
return False
if n == 1:
return True
if n % 4 == 0:
return self.isPowerOfFour(n / 4)
if n % 4 != 0:
return False
方法二: 采用循环
class Solution(object):
def isPowerOfFour(self, n):
"""
:type n: int
:rtype: bool
"""
if n == 1:
return True
while n > 4:
if n%4 != 0:
return False
n = n / 4
return n == 4