Python 简单实例2:斐波那契数列

斐波那契数列

1 1 2 3 5 8 13 21
a_{n} = \frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^{n}-(\frac{1-\sqrt{5}}{2})^{n}]

计算运行时间

import time
start=time.time()
#中间写上代码块
end=time.time()
print('Running time: %s Seconds'%(end-start))

输出指定数

输入n 输出an

def fibo(n) :
    if n == 1 or n == 2:
        return 1
    else:
        return int( 1 / 5 ** 0.5 * ( ((1 + 5 ** 0.5)/2) ** n - ((1 - 5 ** 0.5)/2) ** n ) )

使用通项公式输出前n个数

def fibo(n) :
    if n == 1 or n == 2:
        return 1
    else:
        return int( 1 / 5 ** 0.5 * ( ((1 + 5 ** 0.5)/2) ** n - ((1 - 5 ** 0.5)/2) ** n ) )
res = []
n = 5
for i in range(n):
    res.append(fibo(i+1))
print(res)

不使用通项公式输出前n个数

res = []
n = 5
for i in range(n):
    if i == 0 or i == 1:
        res.append(1)
    else:
        res.append(res[i - 1] + res[i - 2])
print(res)

使用递归输出指定数

def fibo(n) :
    if n == 1 or n == 2:
        return 1
    else:
        return fibo( n-1 ) + fibo( n-2 )
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容