【发布时间】:2022-06-15 18:14:49
【问题描述】:
我正在尝试使用while 循环找到这个答案,但我无法编写代码。
我正在尝试以下代码:
base=2
num=1
while base**num > 1000000000:
print(num)
num +=1
【问题讨论】:
-
如果你想迭代到1M,你应该反向比较。不过,这非常慢。你问的是
log2操作。使用log2寻找力量 -
你想要
while base**num<1000000000。目前base^num(即2^1)小于1M,所以不执行while循环,不打印任何内容 -
这看起来像家庭作业。但是没关系。我只是想指出没有必要求幂。你可以继续加倍
base,直到超过 1000000000。你加倍的次数就是答案。我指出这一点是因为它的效率略高。 -
29.8973528544 -
@MartinPacker 差异(如果有的话)可以忽略不计。加倍是取幂。如果您使用位移来加倍,您只会获得巨大的改进,因为这是所有 CPU 中的单周期操作。
标签: python