python 有一序列1 3 5 8 13 21等等 用while循环求出这个数列的前20项之和

python 有一序列1 3 5 8 13 21等等 用while循环求出这个数列的前20项之和

问题描述:

用python敲的
和分数序列那个差不多,但我不会这个
用while循环求出这个数列的前20项之和
有大神教一下吗
除了第一项,后面都是前两项相加
python 有一序列1 3 5 8 13 21等等 用while循环求出这个数列的前20项之和

你题目的解答代码如下:

s = 1
a = 3
b = 5
for i in range(1,20):
    s += a
    t = a+b
    a = b
    b = t

print(s)

如有帮助,望采纳!谢谢!

https://www.zhihu.com/question/359580950/answer/1330182041

# 因为斐波那契数列从第3项开始,每一项都等于前两项之和。所以排除 0 1 重复计算
known = {0: 0, 1: 1}
#定义一个求斐波那契数列的函数
def fib(n):
    if n in known:
        return known[n]
    #斐波那切数列的定义
    res = fib(n - 1) + fib(n - 2)
    known[n] = res
    return res
res = []
# 构造一个20项的斐波那切数列并求和
for i in range(20):
    res.append(fib(i))
print (sum(res))

作者:江夏
链接:https://www.zhihu.com/question/359580950/answer/1330182041
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。