您的位置:首页 > 其它

LeetCode 342 Power of Four

2016-10-12 12:49 323 查看
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的幂方。

这个问题用递归或者循环可以很容易就解决,但是题目的附加要求写着:不适用递归和循环。

因此,采用位运算的方法来解决。

class Solution {
public:
bool isPowerOfFour(int num) {
if(num <= 0) return false;	// 判断是否为正数
if(num&(num-1)) return false;	// 判断是否为2的幂
if(num&0x55555555) return true;	// 判断是否为4的幂
return false;
}
};


0x55555555 <-> 1010101010101010101010101010101


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: