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

python解决“斐波那契数列”问题

2017-03-01 15:31 441 查看
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

#!/usr/bin/python
#coding=utf-8
# __author__ = 'cy'
#导入time包,之后的sleep()函数位于其中
import time
def fibs(num):
#用于保存生成的实例序列
result = [0, 1]
#用于生成0到num-2-1的数字
for i in range(num-2):
#循环数值加入到result列表
result.append(result[-2]+result[-1])
return result
def main():
#用参数nums 调用fibs()函数,生成nums个斐波那契数字
nums=int(input('How many fibs do you want:'))
result = fibs(nums)
#用open()函数打开文件,第一个参数为被打开的文件名,第二个参数是打开方式
fobj = open('/data/moxiaokai/HelloWorld/cyTest/blogcode/result.txt', 'w+')
#enumerate()将数组或列表组成一个索引序列,返回值包含两个变量,第一个是序列,第二个是值
for i, num in enumerate(result):
print u"第 %d 个数是: %d" %(i, num)
#写入格式,‘\n’用作换行
fobj.write("第%d个数是: %d\n" %(i, num))
time.sleep(1)
if __name__ == '__main__':
main()


运行结果如下:

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