LeetCode Q 231 - Power of Two
Given an integer, write a function to determine if it is a power of two.
Example 1: Input: 1 ; Output: true
Explanation: 20 = 1
Example 2: Input: 16 ; Output: true
Explanation: 24 = 16
Example 3: Input: 218 ; Output: false
Solution
Code: Recursive approach
public boolean isPowerOfTwo(int n) {
if (n == 1) return true;
if (n <= 0 || n % 2 == 1) return false;
return isPowerOfTwo(n / 2);
}
Code: Iterative approach
public boolean isPowerOfTwo(int n) {
if (n <= 0) return false;
while (n % 2 == 0) n /= 2;
return n == 1;
}