您的位置:首页 > 编程语言 > Python开发

Python 实现斐波那契数列

2018-03-04 12:40 246 查看
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……,用python实现:

#coding:utf-8

def Fibonacci1(n):
'''
按照斐波那契数列规则实现求第n位数,n从0开始
'''
if type(n)==int and abs(n) >= 0: # 输入必须为正整数
list_fibo = []
for i in range(n + 1):
if i < 2: # 第1、2位为1
list_fibo.append(1)
else: # 第3位开始,为前两位的和
list_fibo.append(list_fibo[i-1] + list_fibo[i-2])
# print list_fibo
return list_fibo

else:
print 'n 不是有效的正整数'
return None

def Fibonacci2(n):
'''
利用递归思想(找出边界值、递归公式后直接套)实现斐波那契数列,求第n位数,n从0开始
'''
if type(n) == int and abs(n) >= 0:
if n < 2: #边界值
return 1
else:
return Fibonacci2(n-1) + Fibonacci2(n-2) # 递归公式
else:
print 'n 不是有效的正整数'
return None

print Fibonacci1(20)
print Fibonacci2(20)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: