怎么写呢?……*+-@()×+“,%–_“~;.《……》””
如果一个数是2的幂,那么它的二进制表示中就只有一位1,例如:10000,1000,100等等。所以如果对数字1进行移位操作,总会在移到某个位的时候和这个数相等。这就是移位判断的思想。
def twopower(n):
res = 1
while res < n:
res = res << 1
if res == n:
return True
else:
return False
num = int(input("请输入一个正整数:"))
while num != 0 and num % 2 == 0:
num = num / 2
if num == 1:
print("是2的幂")
else:
print("不是2的幂")
两个方法
1.循环从1开始乘以2,直到位数超过输入的数,判断两个数是否相等
2.循环将输入的数除以2,如果最终得1就是2的幂
import math
n = int(input(">>>"))
if n == 2 ** math.log(n, 2):
print('yes')
else:
print('no')
if bin(n).count('1') == 1:
print('yes')
else:
print('no')