leetcode 231(2的冪)(位運算)

2021-09-10 12:47:56 字數 618 閱讀 4344

q:給定乙個整數,編寫乙個函式來判斷它是否是 2 的冪次方。

示例 1:

輸入: 1

輸出: true

解釋: 20 = 1

運用位運算就可以很快的解出來。

因為2的冪次都是1,10,100,1000,10000

所以如果是2的冪次,則n&(n-1)=0

**如下:

又嘗試了一下不用位運算解這道題:

class solution {

public:

bool ispoweroftwo(int n) {

int a=0,i=0;

while(a最後超出了時間限制,最後測試的資料如下,可能因為測試的資料太大了,所以超出了時間限制。所以還是位運算效率高一些。

python 騰訊(231)2的冪

分析好即可 我分析此題的關鍵在於 如果是2的冪次方,那麼在不斷的連除過程中,一直都會是整數,不會有小數。因此,判斷是否會產生小數,在除的過程中,即可判斷是否是2的次冪。如下 class solution def ispoweroftwo self,n int bool class solution ...

LeetCode 342 4的冪(位運算)

給定乙個整數 32 位有符號整數 請編寫乙個函式來判斷它是否是 4 的冪次方。示例 1 輸入 16輸出 true 示例 2 輸入 5輸出 false 高階 你能不使用迴圈或者遞迴來完成本題嗎?相關題目 leetcode 231.2的冪 leetcode 338.位元位計數 2進製1的個數 class...

leetcode 快速冪運算(位運算)

題目描述 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。實現 def mypow self,x float,n int float if x 0 return 0 res 1 if n 0...