1. 程式人生 > >劍指 offer_第七題_斐波那契數列

劍指 offer_第七題_斐波那契數列

平臺

牛客網

語言

python2.7.3

作業內容

題目描述

大家都知道斐波那契數列,現在要求輸入一個整數 n, 請你輸出斐波那契數列的第 n 項(從 0 開始,第 0 項為 0)。 n<=39

題目理解

什麼是斐波那契數列?

斐波那契數列(Fibonacci Sequence)又稱黃金分割數列。

該數列指的是這樣的一列數字:0、1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987、1597、2584、4181、6765、10946、17711、28657、46368…

特別指出:第 0 項是 0,第 1 項是第一個 1。此數列從第 2 項開始,每一項都等於前兩項之和。

在數學上,斐波納契數列被以遞迴的方法定義:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N)*

解題思路

第 0 項是 0,第 1 項是 1。此數列從第 2 項開始,每一項都等於前兩項之和。

程式

class Solution:
    def Fibonacci(self, n):
        if n<=0:
            return 0
        if n==1:
            return 1
        else:
            a,b=0,1 
            for i in range(n-1):
                a,b=b,a+b
            return b

補充知識點

a,b=b,a+b 相當於:
temp=b #先儲存b的原值
b=a+b #賦b新值
a=temp #將b的原值賦予a