编写一个递归函数,计算1+1/2+1/3+……+1/n
时间: 2023-09-20 20:06:20 浏览: 102
以下是 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。
相关问题
编写递归函数,求1+2+3+……+n的值
可以使用递归函数来解决这个问题,递归函数的思想是将一个大问题拆分成若干个小问题,直到问题变得足够小,然后再逐步解决这些小问题,最终得到大问题的解。
下面是求1+2+3+……+n的递归函数:
```python
def sum_recursive(n):
if n == 1:
return 1
else:
return n + sum_recursive(n-1)
```
在这个递归函数中,我们首先判断n是否等于1,如果是,则直接返回1,否则,我们将问题拆分成n和n-1的和,然后递归调用函数sum_recursive(n-1),直到n等于1为止,然后将所有的结果相加,最终得到1+2+3+……+n的值。
可以使用以下代码来测试这个递归函数:
```python
n = 10
print("1+2+3+...+{} = {}".format(n, sum_recursive(n)))
```
输出结果为:
```
1+2+3+...+10 = 55
```
编写一个递归函数,计算下面的级数: m(i)=1+1/2+1/3+1/4+……+1/i
好的,下面是一个递归函数实现:
```python
def sum_series(i):
if i == 1:
return 1
else:
return 1/i + sum_series(i-1)
```
这个函数的思路是,当 `i` 等于 1 时,返回 1;否则,返回当前项 1/i 加上前面所有项的和 `sum_series(i-1)`。这样不断递归下去,直到递归到 i=1 为止,就能得到整个级数的和。
你可以调用这个函数来计算一个特定的 `i` 对应的级数和,例如:
```python
print(sum_series(5)) # 计算 1+1/2+1/3+1/4+1/5 的和
```
输出结果为:
```
1.7166666666666666
```