计算e = 1 + 1/1!+1/ 2!+1/ 3!+…+1/n! 。要求:使最后一项 n! 1 的值小于等于给定的 ϵ 即可结束运算(注意:最后一项 n! 1 的值不计算在内),ϵ 的值从键盘输入
时间: 2023-10-08 20:09:58 浏览: 74
算法1:迭代计算
1. 初始化 e = 1,n = 1,fact = 1
2. 计算当前项 term = 1 / fact
3. 如果 term <= eps,则结束计算
4. 否则,将当前项加入 e 中,即 e = e + term
5. 将 n 加 1,fact 乘以 n,返回第 2 步
时间复杂度:O(n)
算法2:递归计算
1. 递归函数 f(n) 表示前 n 项的和
2. 如果 n = 0,则返回 1
3. 否则,返回 f(n-1) + 1 / n!
时间复杂度:O(n)
Python 代码:迭代计算
eps = float(input("请输入 eps:"))
e, n, fact = 1, 1, 1
term = 1 / fact
while term > eps:
e += term
n += 1
fact *= n
term = 1 / fact
print("e 的值为:", e)
Python 代码:递归计算
def f(n):
if n == 0:
return 1
else:
return f(n-1) + 1 / fact(n)
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
eps = float(input("请输入 eps:"))
e = f(0)
n = 1
while 1 / fact(n) > eps:
e += 1 / fact(n)
n += 1
print("e 的值为:", e)
阅读全文