题目大意: 判断一个数是不是2的幂次方
解题思路:
n | n % 2 | n / 2 |
---|---|---|
16 | 0 | 8 |
8 | 0 | 4 |
4 | 0 | 2 |
2 | 0 | 1 |
1 | 1 | 0 |
n | n % 2 | n / 2 |
---|---|---|
14 | 0 | 7 |
7 | 1 | 3 |
观察上面两个表可以得出的结论是:
当n%2==1&&n/2!=0时,可以说明n不是2的幂次方
代码如下:
public class Solution {
public boolean isPowerOfTwo(int n) {
int yushu = 0;
if(n <= 0)
{
return false;
}else
{
while(n != 0)
{
yushu = n % 2;
n = n / 2;
if(yushu == 1 && n != 0)
{
return false;
}
}
return true;
}
}
}
网友评论