DescriptionGiven an integer (signed 32 bits), write a function to check whether it is a power of 4.Example 1:Input: 16Output: trueExample 2:Input: 5Output: falseFollow up: Could you solve it without loops/recursion?描述给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?思路一个数若是 4 的幂次方,那么这个数的二进制表示只有 1 一个 1。并且这个数的1 出现在(从右往左) 第 1,或 3,或 5 ,或 7 … 位。一个数 num 只有一个 1 那么,num 和 num -1 与运算为 0。1 出现在奇数位,那么次数与 1010101010101010101010101010101 与运算为 num 本身。# -- coding: utf-8 --# @Author: 何睿# @Create Date: 2019-04-08 16:58:04# @Last Modified by: 何睿# @Last Modified time: 2019-04-08 17:11:49class Solution: def isPowerOfFour(self, num: ‘int’) -> ‘bool’: # num 数字不为零 # num 的二级制只有一个 1 # num 中 1 的位置出现在第 1 位,或第 3 位,或第5 … 位 return num != 0 and num & ( num - 1) == 0 and num & 0b1010101010101010101010101010101 == num源代码文件在 这里 。©本文首发于 何睿的博客 ,欢迎转载,转载需保留 文章来源 ,作者信息和本声明.