Leetcode P0231"Power of Two" 题解

2020/11/09 Leetcode

博文中会简要介绍Leetcode P0231题目分析及解题思路。

“Power of Two”是一道十分简单的题目。基本思路就是对给定的数n不断地除以2得到新的n,并且判断该次除法是否有余数,如果有那么显然不是2的整数幂,如果没有则重复上述操作直到新的n等于1为止。

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

以下是Java的题解代码实现。

class Solution {
    public boolean isPowerOfTwo(int n) {
        if (n < 1)
            return false;
        
        while (n > 1) {
            if (n%2 != 0)
                return false;
            
            n /= 2;
        }
        
        return true;
    }
}

以下是C++的题解代码实现。

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

Search

    Table of Contents