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