今天吃了栗子和葡萄很开心。
题目: 输入一个整数,判断它是否是2的倍数
1. 蠢蠢的没有思考的做法
public boolean isPowerOfTwo(int n) {
if(n==0)
return false;
else
{
while(n!=1)
{
if(n%2==0)
n=n/2;
else
return false;
}
}
return true;
}
2. 只用两行的代码
public boolean isPowerOfTwo(int n) {
if(n <= 0) return false;
return (n &= (n-1)) == 0;
//位运算,如果是2的n次方,转化成二进制是10000...的形式,所以它与上-1的数为0
}
以后做题要想的更多,考虑一些别的方法,不用直接就上手做,而不思考~