这个问题在这里已有答案:
有人知道用Python显示Fibonacci序列中前100个数字的最有效方法吗?
这是我目前的代码:
fib1,fib2,fib3= 0,0,1
while fib3< 100:
print(fib3)
fib1=fib2
fib2=fib3
fib3=fib1 + fib2
理解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)))
from math import sqrt
def F(n):
return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))
根据Fibonacci公式,这是获得Fibonacci序列的第n个成员的方法。
这个函数不使用循环也不使用递归(递归在Python中很糟糕,它们总是比迭代解决方案慢,因为Python处理递归的方式,请参阅here for more info关于它)