输入一个正整数n,用3种方法分别计算下式的和(保留4位小数)。 e=1+1/1!+1/2!+1/3!+ …+1/n! 要求:定义和调用函数fact(n)计算n的阶乘。 【输入形式】 从键盘输入一个正整数n。 【输入输出样例1】(下划线部分表示输入) Input n: 10 e=2.7183 【输入输出样例2】(下划线部分表示输入) Input n: 3 e=2.6667 【样例说明】 输入提示符后要加一个空格。其中“:”后要加一个且只能一个空格。 输出语句的“=”两边无空格。 英文字母区分大小写。必须严格按样例输入输出
时间: 2023-12-14 09:39:52 浏览: 190
计算n的阶乘的一个方法,可以用多种形式输出的
可以使用三种方法来计算e的值,分别为循环累加、递归和迭代递推。下面给出完整代码:
```python
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
# 循环累加
def method1(n):
e = 1
for i in range(1, n+1):
e += 1 / fact(i)
return round(e, 4)
# 递归
def method2(n):
if n == 0:
return 1
else:
return 1/fact(n) + method2(n-1)
# 迭代递推
def method3(n):
e = 1
fact_n = 1
for i in range(1, n+1):
fact_n *= i
e += 1 / fact_n
return round(e, 4)
n = int(input("Input n: "))
print("e={:.4f}".format(method1(n)))
print("e={:.4f}".format(method2(n)))
print("e={:.4f}".format(method3(n)))
```
其中,`fact` 函数用于计算n的阶乘,`method1` 函数为循环累加方法,`method2` 函数为递归方法,`method3` 函数为迭代递推方法。在主函数中,先读入n的值,然后依次调用三种方法并输出结果。需要注意保留小数点后4位,可以使用 `round` 函数进行四舍五入。
阅读全文