[231].2的冪

2的冪

 


題目

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

示例 1:

輸入: 1
輸出: true
解釋: 2^0 = 1

示例 2:

輸入: 16
輸出: true
解釋: 2^4 = 16

示例 3:

輸入: 218
輸出: false

 


函數原型

C的函數原型:

bool isPowerOfTwo(int n){}

 


邊界判斷

bool isPowerOfTwo(int n){
	if( n <= 0 )
		return false;
}

 


算法設計:&運算

思路:如果一個數是 2 的冪,那它的二進制形式一定【有且只有一個1】,其它位都爲0,如果用 n & (n-1) == 0,那就說明這是 2 的冪。

bool isPowerOfTwo(int n){
    if( n <= 0 )
		return false;

	return ((n & n-1) == 0 ) ? true : false;
}

&運算的複雜度:

  • 時間複雜度:Θ(1)\Theta(1)
  • 空間複雜度:Θ(1)\Theta(1)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章