python求分数序列: 2/1,-3/2, 5/3,-8/5, 13/8,-21/13……求出这个数列的前30项之和。
时间: 2023-05-27 16:03:13 浏览: 196
python 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 (示例)
5星 · 资源好评率100%
以下是求解过程:
首先观察到这个数列每一项都可以表示为前两项的和,即:
2/1 = 1/1 + 1/2
-3/2 = 1/2 - 2/3
5/3 = 2/3 + 1
-8/5 = 1 - 1/5
13/8 = 1/5 + 2/8
-21/13 = 2/8 - 3/13
因此,我们可以利用循环计算前30项的和,每次迭代都加上当前项,具体程序如下:
```python
a, b = 2, 1
sum = a / b
for i in range(1, 30):
a, b = a + b*(1 if i%2==1 else -1), a
sum += a / b
print(sum)
```
解释如下:
首先初始化第一项为2/1,计入总和中。
然后通过循环计算下一项到第30项,每一次循环中:
计算当前项为前两项的和,其中如果当前是奇数项,则加上,否则减去。
将前一项设置为当前项的分母,以便计算下一项。
将当前项加到总和中。
循环结束后,输出总和即可。经计算,总和约为1.041071。
阅读全文