(LeetCode 231)Power of Two

来源:互联网 发布:一战往事知乎 编辑:程序博客网 时间:2024/04/28 08:14

题:
Given an integer, write a function to determine if it is a power of two.

也就是判断一个数是不是2的幂次方

solution:
这道题解法很多,最简单的就是循环。
已知2的幂次方的二进制中有且只有一位为1。
我们向右移动,直到当前位为1。再在当前状态右移一位,如果是剩余位都是零那么就是2的幂次方。

class Solution {public:    bool isPowerOfTwo(int n) {        int i = 0;        int m = 1;        while(n>>i)        {            if((n>>i)&1==1){                m=n>>(i+1);                break;            };            i++;        }        if(m==0)        return true;        return false;    }};
1 0