1、暴力通用解法:
if(num==0)
return false;
while(num!=0)
{
int x=num%n;
if(x!=0&&num!=1)
return false;
num=num/n;
}
return true;
2、 如果一个数是n的幂,它的以n为底的对数一定是整数
double t=Math.log10(num)/Math.log10(n);//等于log以n为底的num,
return (t-(int)t)==0?true:false;
3、2的幂有特殊解法
//位操作,如果一个数是2的幂,其2进制表示位置只有最高位1,则(n&n-1)==0
public static boolean isPowerOfTwo2(int n) {
if(n<=0)
return false;
return (n&(n-1))==0;
}