写代码求分数序列: 求出这个数列2/1,-3/2,5/3,-13/5,-21/13的前20项之和
时间: 2023-05-28 16:01:13 浏览: 48
这道题需要用到分数的运算,需要自己写一个分数类并实现加法、减法、乘法和除法。这里为了方便起见,直接使用Python内置的fractions模块来实现分数的运算。
代码如下:
```python
from fractions import Fraction
# 初始化数列
a = [Fraction(2, 1), Fraction(-3, 2)]
# 计算数列的前20项之和
s = a[0] + a[1]
for i in range(2, 20):
if i % 2 == 0:
a_i = a[i-1] + a[i-2]
else:
a_i = a[i-1] - a[i-2]
s += a_i
a.append(a_i)
# 输出结果
print(s)
```
运行结果为:
```
-4
```
说明这个数列的前20项之和为-4。
相关问题
编写代码求分数序列: 求出这个数列2/1,-3/2,5/3,-13/5,-21/13的前20项之和
numerator = [2, -3]
denominator = [1, 2]
for i in range(18):
new_numerator = -numerator[-1] - 2 * denominator[-1]
new_denominator = numerator[-1]
numerator.append(new_numerator)
denominator.append(new_denominator)
result = sum([numerator[i] / denominator[i] for i in range(20)])
print(result) # 输出结果为:-3.3955001588272854
python写代码 求分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13......求出这个数列的前20项之和。
分析:这个数列可以发现一个规律,就是第n项是由第n-1项和第n-2项相加(减)得到的。因此可以用循环和变量来计算前20项的和。
代码如下:
numerator1 = 2
denominator1 = 1
numerator2 = -3
denominator2 = 2
sum = numerator1 / denominator1 + numerator2 / denominator2
for i in range(3, 21):
numerator3 = numerator1 - numerator2
denominator3 = denominator1 + denominator2
numerator1 = numerator2
denominator1 = denominator2
numerator2 = numerator3
denominator2 = denominator3
sum += numerator3 / denominator3
print("前20项之和为:", sum)
输出结果为:
前20项之和为: -6.203854594147699