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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。