一、题目
Power of Four二、解题
输入:给出一个32位的有符号数
输出:判断是否是4的阶乘
不能用循环和递归,首先想到是的对数函数,结果竟然给过了- -。(要进行<0的边界判断),判断是否是4的阶乘,把对数的结果转化为int,判断和原来的数是否相同(不是4的阶乘不会是一个整数)
三、尝试与结果
import math
class Solution(object):
def isPowerOfFour(self, num):
if num <=0:
return False
a = math.log(num,4)
if int(a) == a:
return True
else:
return False
结果:AC
四、学习与记录
class Solution(object):
def isPowerOfFour(self, num):
if num <=0:
return False
if num == 1:
return True
if (num -1)%3 == 0 and num & (num-1) == 0:
return True
else:
return False
说明:也是从数学的角度出发,数num是4的阶乘需要满足的条件是
1)(num -1)%3 == 0
2)num & (num-1) == 0
网友评论