欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Power of Two

发布时间:2025/4/16 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。