下面的代码不适用于某些输入。
a, i = set(), 1
while i <= 10000:
a.add(i)
i <<= 1
N = int(input())
if N in a:
print("True")
else:
print("False")
Run Code Online (Sandbox Code Playgroud)
我的想法是,不是通过从1开始乘以2直到超过输入数字来检查每个输入是否为2的幂,而是在每一步进行比较,而是将所有2的幂存储在一组中以便检查O(1)中的给定输入。如何改善呢?
python ×1