Given an integer, write a function to determine if it is a power of two.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
传统的递归方法非常简单
public boolean isPowerOfTwo(int n) { if(n==0) return false; if(n==1) return true; if(n%2==0) return isPowerOfTwo(n/2); else return false; }网上看到一个非常巧妙的解法
public boolean isPowerOfTwo(int n) { return n>0&&(n&(n-1))==0; }即当满足power of two时,转换成二进制有且仅有一个1,可通过-1并按位相与操作判断1的个数。