在 Python 中查找最多第 n 项的斐波那契数列结果的程序
假设我们有一个数字 n。我们必须找到前 n 个斐波那契项的总和(最多 n 个项的斐波那契数列)。如果答案太大,则返回结果模 10^8 + 7。
所以,如果输入像 n = 8,那么输出将是 33,因为前几个斐波那契项是 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 = 33
示例
让我们看看以下实现以获得更好的理解 -
m = 10**8+7memo = {}
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