请问有人知道用Python显示斐波那契数列中前100个数字的最有效方法吗?
这是我当前的代码:
fib1,fib2,fib3= 0,0,1
while fib3< 100:
print(fib3)
fib1=fib2
fib2=fib3
fib3=fib1 + fib2
答案 0 :(得分:1)
from math import sqrt
def F(n):
return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))
根据斐波那契公式,这是一种获取斐波那契序列第n个成员的方法。
此函数既不使用循环也不使用递归(由于Python如何处理递归,因此递归在Python中非常糟糕,由于迭代方式,它们总是比迭代解决方案慢,请参见fiddle)
答案 1 :(得分:1)
了解python和fibonacci序列的工作原理。使用python的generator
功能。遵循代码
a = int(input('Give num: '))
def fib(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
print(list(fib(a)))