package test; public class Test02 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(isPower(4)); System.out.println(isPower(6)); } public static boolean isPower(int n){ if(n<1){ return false; } int i=1; while(i<=n){ if(i==n){ return true; //相等后说明存在一个2的n次幂 } i<<=1; } return false; } }
上述时间复杂度为O(logn)code
package test; public class Test02 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(isPower(4)); System.out.println(isPower(6)); } public static boolean isPower(int n){ if(n<1){ return false; } int m=n&(n-1); return m==0; } }