如何用 Python 编写一个程序来计算一系列等比数列,从 1 开始加到 1/n,包括 n 分之一的所有项并考虑递归与非递归两种情况
时间: 2024-10-24 16:11:00 浏览: 16
在Python中,我们可以使用递归和循环两种常见的编程结构来计算等比数列的和。这里我会分别给出递归和非递归(循环)的例子。
**1. 递归方法**
递归是一种函数调用自身的方式来解决问题的技术。对于等比数列的求和,我们可以定义一个递归函数`geometric_sum_recursive`:
```python
def geometric_sum_recursive(n, ratio=1):
if n == 1:
return ratio / n
else:
return ratio + geometric_sum_recursive(n - 1, ratio)
# 示例
n = 5 # 求1/1、1/2、1/3、1/4、1/5 的和
result = geometric_sum_recursive(n)
print(f"等比数列(递归)的和为: {result}")
```
**2. 非递归(循环)方法**
这种方法通常更高效,因为我们避免了多余的函数调用。我们可以在循环中累加每一项:
```python
def geometric_sum_iterative(n, ratio=1):
total = 0
for i in range(1, n + 1):
total += ratio / i
return total
# 示例
n = 5
result = geometric_sum_iterative(n)
print(f"等比数列(迭代)的和为: {result}")
阅读全文