用python实现斐波那契数列的5种简单方法
今天去面试,笔试题中又有出现斐波那契数列这道题,想到经常在面试中遇到这个问题,于是用python写了几个简答的方法,供初学python的小伙伴们参考。方法一:用for循环逐个打印出数列的值def fibonacci1(n):a,b = 0,1for i in range(n):a,b =b,a+bprint a方法二:用whi...
·
今天去面试,笔试题中又有出现斐波那契数列这道题,想到经常在面试中遇到这个问题,于是用python写了几个简答的方法,供初学python的小伙伴们参考。
方法一:用for循环逐个打印出数列的值
def fibonacci1(n):
a,b = 0,1
for i in range(n):
a,b =b,a+b
print a
方法二:用while循环逐个打印出数列的值
def fibonacci2(n):
a =0
b = 1
i =0
while i <n:
print b
a,b = b,a+b
i = i+1
方法三:用递归的方法,加上for循环,把每次循环产生的新项增加到数列最后,最后一次性输出list
def fibonacci3(n):
lis =[]
for i in range(n):
if i ==1 or i ==0:
lis.append(1)
else:
lis.append(lis[i-2]+lis[i-1])
print lis
方法四:用递归的方法,加上while循环,把每次循环产生的新项增加到数列最后,最后一次性输出list
def fibonacci4(n):
# type: (object) -> object
lis=[]
i=0
while i<n:
if i==0 or i ==1:
lis.append(1)
else:
lis.append((lis[i-2]+lis[i-1]))
i = i + 1
print lis
方法五:先用递归的方法,定义一个返回第n项值的函数fn,再加上for循环,以此返回全部n项的值。
def fibonacci5(n):
def fn(i):
if i <2:
return 1
else:
return (fn(i-2)+fn(i-1))
for i in range(n):
print fn(i)
实际上方法1和方法2是相同的,方法3和方法4是相同的,只是分别用了for循环和while循环。
更多推荐
已为社区贡献1条内容
所有评论(0)