342. Power of Four
Posted 绵绵思远道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了342. Power of Four相关的知识,希望对你有一定的参考价值。
题目:
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?
答案:
判断一个数是否是4的幂,不能使用循环和递归:
前面我们已经做过一个数是否为2的幂这道题,4的幂跟2的幂一样,都是最高位为1,其他位为0。
不同的是4的幂中的1在偶数位上,所以我们可以用0xaaaaaaaa与之按位与。
1 class Solution { 2 public: 3 bool isPowerOfFour(int num) { 4 return num>0&&(!(num&(num-1)))&&(!(num&(0xaaaaaaaa))); 5 } 6 };
以上是关于342. Power of Four的主要内容,如果未能解决你的问题,请参考以下文章