有一个分数数列:2/1, 3/2, 5/3, 8/5, 13/8,…。编程计算这个数列的前20项之和(结果保留2位小数)。
时间: 2023-11-01 22:06:47 浏览: 90
分析:根据题目中给出的数列,可以发现这是一个斐波那契数列的变形,即每一项都是前两项之和的比值,而斐波那契数列的前20项可以通过递推公式计算,因此可以利用递推公式计算每一项的分子和分母,再计算它们的比值,最后将前20项的比值相加即可。
代码如下:
```python
# 计算斐波那契数列的前n项
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 计算分数数列的前n项之和
def sum_fraction(n):
numerator1, numerator2 = 2, 3 # 分子的初始值
denominator1, denominator2 = 1, 2 # 分母的初始值
sum = 2/1 + 3/2 # 前两项之和
for i in range(3, n+1):
numerator = numerator1 + numerator2 # 分子的递推公式
denominator = denominator1 + denominator2 # 分母的递推公式
sum += numerator/denominator # 将当前项的比值加入总和中
numerator1, numerator2 = numerator2, numerator # 更新分子的值
denominator1, denominator2 = denominator2, denominator # 更新分母的值
return round(sum, 2) # 保留两位小数
print(sum_fraction(20))
```
输出结果为:32.66
阅读全文