算法:342、4的幂(2的幂)

一、“4的幂”题目描述:

看到这种问题,第一想法就是位操作

方法如下:

 上述代码中:n&(n - 1)能确保n的二进制数中只有一个1,且位置在正确的位置上;而n&0x55555555可以过滤掉2和8;

 

二、“2的幂”题目描述:

代码如下:

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if(n <= 0)
            return false;
        return((n & (n - 1)) == 0);
    }
};

 

三、“3的幂”题目描述:

 

posted @ 2018-06-17 21:28  outthinker  阅读(393)  评论(0编辑  收藏  举报