給定乙個整數n,判斷它是否為2的次方冪。
思路:2,4,8,16,32....都是2的n次冪
轉換為二進位制分別為:
10 100 1000 10000 100000
這些數減1後與自身進行按位與,如果結果為0,表示這個數是2的n次冪
01 011 0111 01111 011111
10&01 = 0 100&011 = 0 1000&0111 = 0 10000&01111 = 0 100000&011111 = 0
源**:
#include /* 判斷乙個整數是否為2的次方冪 */
bool fun(int v)
int main(void)
執行結果:
判斷乙個數是否為2的N次方
package aboutmove 判斷是否為2的次方 public class aboutmove return false public static void main string args 注意點千萬不能在第15行寫成n 1 因為6 2 3 3 2 1這是整形 時間複雜度為o logn 演...
python 判斷乙個數是否是2的冪次方
乙個數是否是2的冪次方,比較常用的是遞迴和移位運算進行判斷。1.遞迴演算法的思想很簡單,就是不斷的模上2去判斷。2.如果乙個數是2的冪,那麼它的二進位制表示中就只有一位1,例如 10000,1000,100等等。所以如果對數字1進行移位操作,總會在移到某個位的時候和這個數相等。這就是移位判斷的思想。...
如何判斷乙個數是否為2的冪
給定乙個整數,寫乙個函式判斷該函式是否為2的冪。例如輸入 16 輸出 true 輸入 5 輸出 false bool ispoweroftwo int n bool ispoweroftwo int n 由二進位制原理可以知道,如果乙個數為2的冪,那麼這個數對應的二進位制應該只有乙個1,演算法1 在...