在 Python 中查找最多第 n 项的斐波那契数列结果的程序

假设我们有一个数字 n。我们必须找到前 n 个斐波那契项的总和(最多 n 个项的斐波那契数列)。如果答案太大,则返回结果模 10^8 + 7。

所以,如果输入像 n = 8,那么输出将是 33,因为前几个斐波那契项是 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 = 33

示例

让我们看看以下实现以获得更好的理解 -

m = 10**8+7

memo = {}

def solve(n, m):

   if n in memo:

      return memo[n]

   memo[n] = n if n < 2 else (solve(n-1, m)+solve(n-2, m)) % m

   return memo[n]

n = 8

solve(n, m)

print(sum(list(memo.values())[:n]))

输入

8
输出结果
33

以上是 在 Python 中查找最多第 n 项的斐波那契数列结果的程序 的全部内容, 来源链接: utcz.com/z/358421.html

回到顶部