returns tribonnacci 级数最多为一个数的函数
Function that returns tribonnacci series up to a number
我正在尝试解决一个练习,该练习要求我编写一个函数,该函数将一个整数作为输入,然后 returns 一个 tribonacci 项列表,直到输入值。我大部分时间都是"successful",但也输出了一个额外的术语。这是我的代码:
def tribonacci(m):
tribs = [0, 0, 1]
if m == 0 or m == 1:
tribs = [0, 0]
elif m == 2:
tribs = [0, 0, 1]
else:
while tribs[-1] < m:
tribs.append(tribs[-1] + tribs[-3] + tribs[-2])
return tribs
我知道问题出在运行额外迭代的 while 循环,因为最后一个元素仍然不大于 m。但是,我无法立即看到如何解决此问题。我会求助于 while-else 循环,但我想看看其他一些建议。
将即将生成的term与m进行比较,像这样:
def tribonacci(m):
tribs = [0, 0, 1]
if m == 0 or m == 1:
tribs = [0, 0]
elif m == 2:
tribs = [0, 0, 1]
else:
while tribs[-1] + tribs[-3] + tribs[-2] < m:
tribs.append(tribs[-1] + tribs[-3] + tribs[-2])
return tribs
我正在尝试解决一个练习,该练习要求我编写一个函数,该函数将一个整数作为输入,然后 returns 一个 tribonacci 项列表,直到输入值。我大部分时间都是"successful",但也输出了一个额外的术语。这是我的代码:
def tribonacci(m):
tribs = [0, 0, 1]
if m == 0 or m == 1:
tribs = [0, 0]
elif m == 2:
tribs = [0, 0, 1]
else:
while tribs[-1] < m:
tribs.append(tribs[-1] + tribs[-3] + tribs[-2])
return tribs
我知道问题出在运行额外迭代的 while 循环,因为最后一个元素仍然不大于 m。但是,我无法立即看到如何解决此问题。我会求助于 while-else 循环,但我想看看其他一些建议。
将即将生成的term与m进行比较,像这样:
def tribonacci(m):
tribs = [0, 0, 1]
if m == 0 or m == 1:
tribs = [0, 0]
elif m == 2:
tribs = [0, 0, 1]
else:
while tribs[-1] + tribs[-3] + tribs[-2] < m:
tribs.append(tribs[-1] + tribs[-3] + tribs[-2])
return tribs