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 )

你可能感兴趣的:(Python 简单实例2:斐波那契数列)