这是上一篇文章的升级版本,这是一解题的思想
# -*- encoding = 'utf-8' -*-
__author__ = 'MG'
import math as m
class Solution(object):
# 最low的一种解法了
def isPowerOfFour1(self, num):
"""
:type num: int
:rtype: bool
"""
if num < 1:
return False
temp = m.log(num,4)
if temp == int(temp):
return True
else:
return False
# 整除的方法(不符合这道题要求,这道题不允许循环)
def isPowerOfFour2(self, num):
if num < 1:
return False
while num % 4 == 0:
num = num / 4
return num == 1
def isPowerOfFour3(self, num):
if num < 1:
return False
# 前面一个条件是2的幂的判定方法,(4的幂,1在奇数位上)
return num & num - 1 == 0 and num & 0x55555555 == num
本文介绍了三种不同的方法来判断一个数是否为4的幂次。包括使用对数计算、循环整除以及位操作等技巧,并对每种方法进行了简单的说明。
290

被折叠的 条评论
为什么被折叠?



