# 342.Power of Four

**342.Power of Four**

难度:Easy

> 给定一个整数 (32 位有符号整数)，请编写一个函数来判断它是否是 4 的幂次方。

```
示例 1:

输入: 16
输出: true
示例 2:

输入: 5
输出: false
进阶：
你能不使用循环或者递归来完成本题吗？
```

4的倍数的二进制末尾一定有偶数个0，前面是一个1.其实直接循环位移就可以判断，既然不使用循环，那就直接使用集合吧，32位的有符号整数，一共有16个2的整数次幂，全部写进去就好了。

```
class Solution {
    unordered_set<int> powers={1,4,16,64,256,1024,4096,16384 ,65536,262144,1048576, 4194304, 16777216,67108864, 268435456, 1073741824};
public:
    bool isPowerOfFour(int num) {
        return powers.count(num);
    }
};
```

> 执行用时 :8 ms, 在所有 C++ 提交中击败了57.68%的用户\
> 内存消耗 :9 MB, 在所有 C++ 提交中击败了5.08%的用户
