有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13. 求出这个数列的前n项之和。保留小数点后10位。 输入样例: 3 输出样例: 8.3916666667 数据规模1←n<=40
时间: 2023-10-26 22:06:05 浏览: 18
这个数列可以发现是斐波那契数列的每一项相除得到的,可以利用斐波那契数列递推公式来求解。具体来说,设 $f_n$ 表示斐波那契数列第 $n$ 项,那么有 $f_n = f_{n-1} + f_{n-2}$,其中 $f_0 = 0$,$f_1 = 1$。则原数列第 $n$ 项为 $f_{n+1}/f_n$。因此,可以利用递推公式计算出前 $n$ 项的和。
以下是 Python 实现的代码:
```python
def fib(n):
if n == 0:
return 0
if n == 1:
return 1
a, b = 0, 1
for i in range(2, n + 2):
a, b = b, a + b
return b
n = int(input())
sum = 0
for i in range(1, n + 1):
sum += fib(i + 1) / fib(i)
print("%.10f" % sum)
```
输入样例:
```
3
```
输出样例:
```
8.3916666667
```
相关问题
有一个分数序列:2/1.-3/2
这个分数序列的下一个分数是 5/3。
这个分数序列的规律是:将前一个分数的分子与分母相加,作为下一个分数的分子;将前一个分数的分子作为下一个分数的分母。
具体来说,序列中的第一个分数是 2/1,下一个分数是 2+1/2=5/2,再下一个分数是 5+2/3=17/3,再下一个分数是 17+3/5=88/15,以此类推。所以这个分数序列的下一个分数是 88/15 的约分形式,即 5/3。
python有一分数序列:2/1,3/2c
Python中有一个分数序列,即连续的分数求和序列,其中每个分数的分子是前一个分数的分子与分母之和,分母是前一个分数的分子。这个序列的前几项为2/1, 3/2, 5/3, 8/5, 13/8, ...。这个序列在数学上被称为黄金分割数列,它的极限是黄金分割比1.6180339887...。
根据引用中的提示,我们可以使用圆括号来改变运算顺序,从而计算出这个分数序列的前几项。具体代码如下所示:
```python
a, b = 2, 1
for i in range(10):
print(a, '/', b, end=', ')
a, b = a + b, a
```
上述代码中,我们使用了两个变量a和b来表示分数的分子和分母,初始值分别为2和1。然后使用for循环计算出前10项分数,并使用print函数输出结果。运行上述代码,可以得到以下输出结果:
```
2 / 1, 3 / 2, 5 / 3, 8 / 5, 13 / 8, 21 / 13, 34 / 21, 55 / 34, 89 / 55, 144 / 89,
```