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
class Solution { public boolean isPowerOfTwo(int n) { boolean res = false; int tmp = 0; for(int i = 0; i < Integer.SIZE; i++){ if(((n>>i) & 1) == 1) tmp++; } return (n > 0) && tmp == 1; } }
class Solution { public boolean isPowerOfTwo(int n) { return (n>0) && ((n&(n-1)) == 0); } }
真就一行啊,举例:8 == 1000, 8 - 1 = 7 == 0111,做与必定为0。
class Solution { public boolean isPowerOfTwo(int n) { return Math.log10(n) / Math.log10(2) % 1 == 0; } }
一 行 超 人