Discuss / Python / 作业

作业

Topic source
# 第一种方式
def pi(n):
    natuals = itertools.count(1, 2)
    natuals = itertools.takewhile(lambda x: x < (n * 2), natuals)
    result = 0
    index = 0
    for item in natuals:
        if 0 == index % 2:
            result += 4 / item
        else:
            result -= 4 / item
        index += 1
    return result

# 第二种方式
def pi(n):
    natuals = itertools.count(1, 2)
    natuals = itertools.takewhile(lambda x: x < (n * 2), natuals)
    offsets = itertools.cycle([1, -1])
    result = 0
    for item in natuals:
        result += 4 * next(offsets) / item
    return result

  • 1

Reply