Leetcode Power of Two

OpenSoucre發表於2015-07-07

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

題目意思:

  給定一個整數,判斷是否是2的冪

解題思路:

  如果一個整數是2的冪,則二進位制最高位為1,減去1後則最高位變為0,後面全部是1,相與判讀是否為零,注意負數和0,負數的最高位是1。

更多二進位制的問題可以參考《程式設計之美》中二進位制有多少個1,面試時容易問。

原始碼:

1 class Solution {
2 public:
3     bool isPowerOfTwo(int n) {
4         return (n > 0) && (n&(n-1)==0);
5     }
6 };

 

相關文章