Given an integer, write a
function to determine if it is a power of two.
Задано целое число.
Определите, является ли оно степенью двойки.
// C++
class Solution {
public:
bool isPowerOfTwo(int
n) {
}
};
// Java
public class
Solution {
public boolean isPowerOfTwo(int
n) {
}
}
математика
Если n = 0, то оно не является степенью двойки.
Иначе делим n на 2, пока n является четным. Если в конце n
становится равным 1, то исходное число было степенью двойки. Иначе – нет.
Реализация алгоритма
class Solution
{
public:
bool isPowerOfTwo(int
n)
{
if (n == 0) return false;
while(n % 2 == 0)
n /= 2;
return (n == 1);
}
};
Java реализация
class Solution
{
public boolean isPowerOfTwo(int
n)
{
if (n == 0) return false;
while(n % 2 == 0)
n /= 2;
return (n == 1);
}
}