Power of Two

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;
}

   Reprint policy


《Power of Two》 by Tong Shi is licensed under a Creative Commons Attribution 4.0 International License
 Previous
Add Digits Add Digits
LeetCode Q 258 - Add DigitsGiven a non-negative integer num, repeatedly add all its digits until the result has only one
2019-04-10 Tong Shi
Next 
Basic Calculator II Basic Calculator II
LeetCode Q 227 - Basic Calculator IIImplement a basic calculator to evaluate a simple expression string. The expression
2019-04-10 Tong Shi
  TOC