(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)

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值