用Python通过定义函数的方式,分别用循环和递归两种方法完成以下计算: s=1+1/3!+1/5!+1/7!+…… 保留小数点后8位。 程序运行后,屏幕显示(蓝色为程序输出,红色为用户输入): 请输入一个大于零的整数:6 奇数1~5的计算结果为:1.12345678
时间: 2024-05-04 16:17:50 浏览: 61
python计算阶乘和的方法(1!+2!+3!+...+n!)
5星 · 资源好评率100%
循环实现代码如下:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
def calculate(n):
s = 0
for i in range(1, 2*n, 2):
s += 1 / factorial(i)
return s
num = int(input("请输入一个大于零的整数:"))
result = calculate(num)
print("奇数1~{}的计算结果为:{:.8f}".format(2*num-1, result))
```
递归实现代码如下:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
def calculate(n, i=1):
if i > 2*n - 1:
return 0
else:
return 1/factorial(i) + calculate(n, i+2)
num = int(input("请输入一个大于零的整数:"))
result = calculate(num)
print("奇数1~{}的计算结果为:{:.8f}".format(2*num-1, result))
```
两种方法的思路都是一样的,都是先定义一个阶乘函数,然后用循环或递归的方式计算公式中的每一项,最后将所有项加起来得到最终结果。其中循环方法使用了for循环,递归方法使用了一个额外的参数i来表示当前计算的项数。
阅读全文