用Python通过定义函数的方式,分别用循环和递归两种方法完成以下计算: s=1+1/3!+1/5!+1/7!+…… 保留小数点后8位。 程序运行后,屏幕显示(蓝色为程序输出,红色为用户输入): 请输入一个大于零的整数:6 奇数1~5的计算结果为:1.12345678
时间: 2024-05-04 07:17:50 浏览: 14
循环实现代码如下:
```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来表示当前计算的项数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)