Power of Two
生活随笔
收集整理的这篇文章主要介绍了
Power of Two
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Given an integer, write a function to determine if it is a power of two.
判断一个数是否是2的幂,判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0.
方法1: n & n-1 == 0
?| 1 2 3 4 5 6 | class Solution { public: bool isPowerOfTwo(int n) { return (n>0) && (!(n&(n-1))); } }; |
方法2: 判断n的二进制中1的个数
?
| 1 2 3 4 5 6 7 8 9 | bool isPowerOfTwo(int n) { int count = 0; while (n > 0) { count+=(n&0x01); n>>=1; } return count==1; } |
直接用n%2,结果如果为1,就返回false(n=1除外,因为2的0次幂为1)。
代码如下:
class Solution { public:bool isPowerOfTwo(int n) {if(n<=0) return false;while(n){if(n%2==1&&n!=1) return false;n/=2;}return true;} };
总结
以上是生活随笔为你收集整理的Power of Two的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: n(n-1)的妙用
- 下一篇: Contains Duplicate