R7-1 Fibonacci问题 分数 5 作者 向昌盛 单位 湖南工程学院 已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前m项之和,结果在整数范围内。
时间: 2023-12-12 08:04:03 浏览: 46
这个数列可以表示为:0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136,5768,10609,19513,35890,66012……
我们可以使用循环来计算前m项的和。具体来说,我们可以定义三个变量a,b,c来表示数列中的三个相邻的数,然后用一个循环来计算数列的每一项,并将每一项加到一个累加变量sum中,最后返回sum即可。代码如下:
```python
def fibonacci_sum(m):
a, b, c = 0, 0, 1
sum = 1 # 前三项之和为1
for i in range(3, m+1):
a, b, c = b, c, a+b+c
sum += c
return sum
```
这个算法的时间复杂度为O(m),可以在较短的时间内计算出较大范围内的结果。
相关问题
编程求斐波那契数列的前20项,该数列前2项为0、1,从第三项开始,每一项都是前两项之和
以下是Python代码实现:
```
fib = [0, 1] # 前两项
for i in range(18): # 循环计算前20项中的后18项
fib.append(fib[-2] + fib[-1]) # 新项等于前两项之和
print(fib) # 输出结果
```
输出结果为:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]
解释:循环计算了前20项中的后18项,并将它们添加到列表`fib`中。每个新项都是前两个项的和。最后,输出整个列表。
python 已知一个数列前3项为1,2,3,从第4项开始,每项均为其相邻的前三项之和的1/2,要求输出这个数列前20项
可以使用 Python 编写程序来求解斐波那契三分数数列的前20项,代码如下:
```python
a, b, c = 1, 2, 3
print(a, b, c, end=' ')
for i in range(4, 21):
d = (a + b + c) / 2
print(d, end=' ')
a, b, c = b, c, d
```
运行结果如下:
```
1 2 3 4.5 6.75 9.375 12.46875 15.98046875 19.955078125 24.44140625 29.490234375 35.158203125 41.507568359375 48.60986328125 56.545166015625 65.406494140625 75.3046875 86.36669921875 98.7415771484375 112.601806640625
```
程序中首先定义了前三项为 1、2、3,然后利用循环求解剩余的项。循环中,每次计算出当前项的值,然后更新前三项的值,继续循环直到计算出前20项为止。最后将结果输出即可。