题目:
给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。
示例 1:
输入: 16
输出: true
示例 2:
输入: 5
输出: false
链接:https://leetcode-cn.com/problems/power-of-four
1、4的幂首先说明它是2的幂,即 num>0 and num&(num-1)==0,这里的主要原因是如果一个数是2的幂的话,那它转换成二进制的话首位是1,其他位均为0,则其与num-1 & 的话即为0
2、如何判断是2的幂,且是4的幂,即num与 二进制数(1010101010)& 即可,这个二进制数的16进制表示结果为 0xaaaaaaaa
Python代码:
class Solution(object):
def isPowerOfFour(self, num):
"""
:type num: int
:rtype: bool
"""
return num>0 and num&(num-1)==0 and num&0xaaaaaaaa==0
网友评论