给定一个x,判断x是否为2的幂
(1<=x<=1000)
例如 2 4 8 16都是
如果你对二进制比较了解,你会发现一个很有规律的现象,但凡是2的幂,其二进制有且只有一个1(最高位),其他位都是0。
1——1
2——10
4——100
8——1000
16——1000
利用这个特点,可以很快地判断出结果。
public class Pan {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int x=1;x<=20;x++)
System.out.println(check(x));
}
public static int check(int x)
{
while(x>2)
{
if(x%2==0)
x=x/2;
else
return 2;
}
return 1;
}
}