[算法和数据结构入门][Day4]用最少的代码行数实现广义斐波那契额数列

编写一个函数Tribonacci(signature, n),如果我们要以[1,1,1]作为起始输入,可以得到广义的斐波那契额数列:[1, 1 ,1, 3, 5, 9, 17, 31, …]
输入参数signature是一个列表,包含了起始的3个数字,n代表返回的数列的长度(非负),你需要返回完整的广义斐波那契额数列
在这里插入图片描述
法一:

def tribonacci(signature, n):   
    [signature.append(sum(signature[-3:]))  for i in range(3, n)]
    return signature[:n]
print(tribonacci([1,1,1],10))
print(tribonacci([300,200,100],0))
print(tribonacci([0.5,0.5,0.5],30))

在这里插入图片描述
法二:

def tribonacci(s, n):
    for i in range(3, n): 
        s.append(s[i-1] + s[i-2] + s[i-3])
    return s[:n]
print(tribonacci([1,1,1],10))
print(tribonacci([300,200,100],0))
print(tribonacci([0.5,0.5,0.5],30))

在这里插入图片描述

发布了42 篇原创文章 · 获赞 28 · 访问量 4961

猜你喜欢

转载自blog.csdn.net/KaelCui/article/details/105351120