[题目]
Given an integer, write a function to determine if it is a power of two.
[思路]
这道题的思路还是蛮简单的说,0的时候是false,不可能是2 的倍数。
8/2 =4 4/2 =2 2/2 =1。最后肯定是得1。
7%2 !=0不能被2整除肯定是不行的。
[代码]
public class Solution {
public boolean isPowerOfTwo(int n) {
if(n == 0) return false;
if(n == 1) return true;
if(n%2 != 0) return false;
else return isPowerOfTwo(n/2);
}
}
public class Solution {
public boolean isPowerOfTwo(int n) {
return (n<=0)?false:(n & (n-1))==0;
}
因为2的power一定是1000....000
-1一定是11111
太绝了,聪明!!