Discuss / Python / 打卡

打卡

Topic source

露心

#1 Created at ... [Delete] [Delete and Lock User]
import itertools
def pi(N):
    ' 计算pi的值 '
    # step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...
    natuals = itertools.count(1,2)
    # step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.
    ns = itertools.takewhile(lambda x : x  <= 2 * N - 1 , natuals)
    
    # step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...
    # step 4: 求和:
    sum = 0
    n = 1
    for i in ns:
        # print(i)
        if n % 2!= 0:
            sum = sum + 4 / i
            n += 1
        else :
            sum = sum - 4 / i
            n += 1
    return sum

  • 1

Reply