R7-1 Fibonacci问题 分数 5 作者 向昌盛 单位 湖南工程学院 已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前m项之和,结果在整数范围内。
时间: 2023-12-12 11:04:03 浏览: 172
数据结构习题答案(全部算法)---严蔚敏版1到5章
这个数列可以表示为: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),可以在较短的时间内计算出较大范围内的结果。
阅读全文