python - 没有得到预期的输出 - 纸张折叠问题
问题描述
创建一个函数,在折叠 n 次后返回一张纸的厚度(以米为单位)。纸张开始时的厚度为 0.5 毫米。
def num_layers(a):
Sum = 0
for i in range(-1, 100):
for k in range(1, a+1):
Sum += 2**i
if k == a+1:
break
return (Sum)/1000
我哪里错了?我已经按照逻辑编写了它,但我没有得到想要的结果。
解决方案
您可以使用:
def fn(a):
res = 0.5
for _ in range(a):
res *= 2
# return res for mm
return res / 1000 # for meters
a
折数在哪里。每折叠一次,您必须将当前厚度的厚度乘以 2。
通过除以调整到您想要的指标res
。