编写一个递归函数,计算1+1/2+1/3+……+1/n
时间: 2023-09-20 20:06:20 浏览: 250
以下是 Python 代码实现:
```python
def sum_recursion(n):
if n == 1:
return 1
else:
return 1/n + sum_recursion(n-1)
n = 5
print(sum_recursion(n)) # 输出:2.283333333333333
```
这个递归函数的思路是:先判断输入的参数n是否等于1,如果是,则返回1;如果不是,则递归调用sum_recursion(n-1),并将结果加上1/n返回。
例如,当n=5时,函数先计算1/5,然后递归调用sum_recursion(4),计算1/4,以此类推,直到n=1时,返回1。最后将所有结果相加,即得到1+1/2+1/3+1/4+1/5=2.283333333333333。
相关问题
编写一个递归函数,计算下面的级数: m(i)=1+1/2+1/3+1/4+……+1/i
以下是递归函数的 Python 代码实现:
```python
def m(i):
if i == 1:
return 1
else:
return m(i-1) + 1/i
```
该函数的思路是,当 `i` 等于 1 时,返回 1;否则,递归调用 `m(i-1)` 计算前 `i-1` 项的和,再加上第 `i` 项的值 `1/i`。这样就得到了整个级数的和。
用py编写一个递归函数,计算下面的级数:m(i)=1+1/2+1/3+1/4+……+1/i主函数中输出前5项
以下是计算级数的递归函数:
```python
def m(i):
if i == 1:
return 1
else:
return m(i-1) + 1/i
```
以下是主函数中输出前5项的代码:
```python
for i in range(1, 6):
print("m({}) = {:.4f}".format(i, m(i)))
```
输出结果:
```
m(1) = 1.0000
m(2) = 1.5000
m(3) = 1.8333
m(4) = 2.0833
m(5) = 2.2833
```
阅读全文