用递归计算1/2+1/4+...+1/n。 编写一个递归函数,当输入的n为偶数时,求1/2+1/4+...+1/n的和。 ●编写函数even_sum(n),接收一个参数n,返回1/2+1/4+...+1/n; ●模块代码负责接收一个正整数,调用函数even_sum(),并将计算结果保留两位小数进行输出。
时间: 2023-06-18 21:06:28 浏览: 95
好的,以下是代码实现:
```python
def even_sum(n):
if n == 2:
return 0.5
elif n % 2 == 1:
return even_sum(n-1)
else:
return 1/n + even_sum(n-2)
n = int(input("请输入一个正整数:"))
result = even_sum(n)
print("1/2+1/4+...+1/{}的和为:{:.2f}".format(n, result))
```
这里使用了递归函数 `even_sum`,首先通过 `if` 语句判断是否到达递归终止条件,当 `n` 为 2 时,直接返回 0.5。对于其他情况,通过 `elif` 语句判断 `n` 是否为奇数,如果是奇数,则递归调用 `even_sum(n-1)`,即返回 `1/2+1/4+...+1/(n-1)` 的和。如果 `n` 为偶数,则递归调用 `even_sum(n-2)`,并加上 `1/n`,即返回 `1/2+1/4+...+1/n` 的和。
在模块代码中,首先通过 `input` 函数获取用户输入的正整数 `n`,然后调用 `even_sum` 函数计算结果,并使用字符串格式化输出结果,保留两位小数。
相关问题
编写一个递归函数,计算1+1/2+1/3+……+1/n
以下是 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。
用Python编写一个递归函数计算1+1/2+1/3+.....+1/i
可以使用下面的代码实现:
```python
def sum_recursive(i):
if i == 1:
return 1
else:
return 1/i + sum_recursive(i-1)
i = 5
result = sum_recursive(i)
print("1 + 1/2 + 1/3 + ... + 1/{} = {}".format(i, result))
```
这个函数接受一个参数 i,表示求和的最后一项是 1/i。如果 i 等于 1,则直接返回 1。否则,返回 1/i 加上递归调用 sum_recursive(i-1) 的结果。最终结果就是所有项的和。
在这个例子中,我们计算了 1 + 1/2 + 1/3 + 1/4 + 1/5 的值,结果为 2.283333333333333。