首页 > 解决方案 > 没有得到预期的输出 - 纸张折叠问题

问题描述

创建一个函数,在折叠 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

我哪里错了?我已经按照逻辑编写了它,但我没有得到想要的结果。

标签: python

解决方案


您可以使用:

def fn(a):
    res = 0.5
    for _ in range(a):
        res *= 2
    # return res for mm
    return res / 1000 # for meters

a折数在哪里。每折叠一次,您必须将当前厚度的厚度乘以 2。

通过除以调整到您想要的指标res


推荐阅读