2的冪
阿新 • • 發佈:2021-02-11
一、需求
-
給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。
示例1:
輸入: 1 輸出: true 解釋: 20= 1
二、位運算
2.1 思路分析
- 該題屬於找規律型別,列舉幾個數,比如當n取中的任何一個時,發現其對應的二進位制最高位為1,而n-1二進位制對應的最高位為0,其餘位為1,因此n & n-1必然為0;
- n若是2的冪,那麼n比如大於0;
2.2 程式碼實現
class Solution { public boolean isPowerOfTwo(int n) { //&的優先順序要小於== return n > 0 && (n & (n-1)) == 0; } }
三、學習地址
作者:Krahets
連結:https://leetcode-cn.com/problems/power-of-two/solution/power-of-two-er-jin-zhi-ji-jian-by-jyd/