题目:
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example:
Given num = 16, return true. Given num = 5, return false.
Follow up: Could you solve it without loops/recursion?
方法一:性能55ms
class Solution(object):
def isPowerOfFour(self, num):
"""
:type num: int
:rtype: bool
"""
if num == 1:
return True
if num < 4:
return False
while num % 4 == 0:
num /= 4
if num == 1:
return True
return False
方法二:性能46ms
class Solution(object):
def isPowerOfFour(self, num):
"""
:type num: int
:rtype: bool
"""
return num > 0 and (num & (num-1)) == 0 and (num-1)%3 == 0