(python)利用下面的计算公式计算e的近似值,要求最后一项小于10-6

实现如下算法
在这里插入图片描述
可以有多种方式实现这个算法,简单列举几种基础算法
最后的答案是:
在这里插入图片描述
第一种

i = 1
n = 1
e = 1
while 1 / n >= pow(10, -6):
        n *= i
        e += 1 / n
        i += 1
print(e)

第二种 递归算法实现阶乘

def fac(x):
    if (x == 1 or x == 0):
        return x;
    else:
        return x * fac(x - 1)


i = 1
s = 1
while 1 / fac(i) >= pow(10, -6):
    s = s + 1 / fac(i)
    i+=1
s = s + 1 / fac(i)
print(s)

第三种

i = 1
n = 1
e = 0
while True:
    if 1 / n <= 10 ** -6:
        e += 1 / n
        break
    else:
        e += 1 / n
        s = 1;
        for j in range(1, i + 1):  # 求n的阶乘
            s = s * j
            n = s
        i += 1
print(e)

第四种

def sum(x):
    i = 1
    n = 1
    e = 1
    while 1 / n >= x:
        n *= i
        e += 1 / n
        i += 1
    return e
    
e = sum(pow(10, -6))
print(e)


第五种

def sum(x):
    i = 1
    n = 1
    e = 0
    while 1 / n >= x:
        e += 1 / n
        n *= i
        i += 1
    return e + 1 / n


e = sum(pow(10, -6))
print(e)

以上方法殊途同归,写法有所不同,算法大抵相同

你可能感兴趣的:((python)利用下面的计算公式计算e的近似值,要求最后一项小于10-6)