def check(m):
if m<=0:
return 0
while m!=1:
if m%2!=0:
return 0
m /= 2
return 1
while 1:
try:
a=int(input())
if check(a):
print("Yes")
else:
print("No")
except EOFError:
break
我覺得你說的沒錯,如果從str轉int應該就要很花時間,所以應該還是要用 a in set() 類似這種O(1)查表才可以吧?
def check(m):
if m<=0:
return 0
while m!=1:
if m%2!=0:
return 0
m /= 2
return 1
while 1:
try:
a=int(input())
if check(a):
print("Yes")
else:
print("No")
except EOFError:
break
我覺得你說的沒錯,如果從str轉int應該就要很花時間,所以應該還是要用 a in set() 類似這種O(1)查表才可以吧?
好吧,反正python本來就不適合跑速度的