博文中会简要介绍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;
}
};