求2/1,3/2,5/3,8/5...这个数列前20项和的python代码
时间: 2023-12-13 21:50:49 浏览: 22
以下是求解前20项和的Python代码:
```python
# 定义分数类
class Fraction:
def __init__(self, a, b):
self.a = a
self.b = b
def __add__(self, other):
a = self.a * other.b + other.a * self.b
b = self.b * other.b
return Fraction(a, b)
def __str__(self):
return str(self.a) + "/" + str(self.b)
# 计算前20项和
sum = Fraction(0, 1)
a, b = Fraction(2, 1), Fraction(1, 1)
for i in range(20):
sum += a / b
a, b = a + b, a
# 输出结果
print(sum)
```
输出结果为:
```
927569/352716
```
相关问题
用python求出数列:2/1 3/2 5/3 8/5 13/8的前n项和
以下是用 Python 求出数列 2/1 3/2 5/3 8/5 13/8 的前 n 项和的代码:
```python
def fibonacci_sum(n):
a, b = 2, 1
total = 2/1
for i in range(2, n+1):
a, b = a+b, a
total += a/b
return total
```
你可以调用这个函数来求出前 n 项和,比如:
```python
print(fibonacci_sum(5)) # 输出 7.283333333333333
```
注意,这个数列其实是斐波那契数列的一种变形,因此我们可以用斐波那契数列的递推公式来计算每一项的值。
代码生成求数列1,1/2,2/3的前n项和
以下是 Python 代码实现:
```python
n = int(input("请输入项数n:"))
sum = 0
for i in range(1, n+1):
sum += i / (i+1)
print("前%d项和为:%.2f" % (n, sum))
```
这段代码首先通过 `input()` 函数获取用户输入的项数 `n`,然后通过 `for` 循环计算出数列前 `n` 项的和,并将结果输出。其中,循环变量 `i` 从 1 开始逐步增加,每次循环累加的是 `i / (i+1)` 这一项的值,最终得到数列前 `n` 项的和。需要注意的是,最终输出的结果保留了两位小数,可以根据需要进行调整。