我正在解决一个Project Euler问题:求偶斐波那契数列的总和。
我的代码:
def Fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return Fibonacci(n-1) + Fibonacci(n-2)
list1 = [x for x in range(39)]
list2 = [i for i in list1 if Fibonacci(i) % 2 == 0]
通过打印sum(list2),可以轻松找到问题的解决方案。然而,我猜想生成list2需要很长时间。有没有办法使这个过程更快?或者这样做也可以吗...
(问题:通过考虑斐波那契数列中不超过四百万的值,找出偶数值项的总和。)
O(log n)
的时间复杂度内计算它。请参阅子线性时间内的第n个斐波那契数。 - jfs