您的位置:首页 > 其它

Leetcode231 Power of Two

2015-10-18 13:10 393 查看
leetcode代码已经放入github:[]https://github.com/gaohongbin/leetcode](https://github.com/gaohongbin/leetcode)

题目:Given an integer, write a function to determine if it is a power of two.

翻译:给你一个整型,写一个函数来确定它是否是2的幂。

思路:(1)这个题如果用一直对2取模,再除以2,看最后能不能等于1。

这个思路写下来在leetcode上会超时。

(2)根据位运算,如果一个数是2的幂,那么它的二进制表示中只有一位是1,其他全是0。

而(N&(N-1))就是把N的二进制表示的最右边一位1变为0.

所以如果一个数N是2的幂,则(N&(N-1))==0.

代码:

public boolean isPowerOfTwo(int n) {
return n > 0 && ((n & (n - 1)) == 0 );
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode