判断一个数是否为2的整数次幂
- 方法1:
public class text{ public static void main(String[] args){ System.out.println(isPowerOf(100)); } private static boolean isPowerOf(int num) { int t=1; while (t<=num){ if (t==num){ return true; } t*=2; } return false; } }
- 方法2:有一定的优化,但在时间复杂度上仍是O(logn),本质上并没有变
public class text{ public static void main(String[] args){ System.out.println(isPowerOf(100)); } private static boolean isPowerOf(int num) { int t=1; while (t<=num){ if (t==num){ return true; } t=t<<1; } return false; } }
- 方法3:
public class text{ public static void main(String[] args){ System.out.println(isPowerOf(100)); } private static boolean isPowerOf(int num) { return (num&num-1)==0; } }
- 讲解: