【发布时间】:2019-05-29 05:14:41
【问题描述】:
我试图找到斐波那契数列总和的最后一位。我将总和计算为F(n+2) - 1。下面的代码工作正常,但对于大数字(例如99999)来说速度很慢。
我该如何优化它?
n = int(input())
def last_digit(n):
a, b = 0, 1
for i in range(n+2):
a, b = b, a + b
return (a-1) % 10
print(last_digit(n))
【问题讨论】:
-
斐波那契数列增长得非常快(指数),这导致 Python 求助于任意精度类型。您将需要模数数学规则以将数字保持在 32/64 位整数范围内。
-
有一种方法...在下面查看我的答案。
标签: python python-3.x fibonacci largenumber