1. 程式人生 > >劍指Offer7:斐波那契數列

劍指Offer7:斐波那契數列

思路:

1.先初始化第0項為0,第1項為1

2.判斷n是否等於0或者1,若是則返回相應的值

3.當n>=count時,開始進入while迴圈。首先計算出前一項和前前一項的和result,再者將前一項賦值給前前一項,result賦值給前一項,然後count+1。再次判斷n和count的關係,若成立繼續迴圈,不成立則返回result。

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        preprenum=0
        prenum=1
        result=0
        count=2
        if n == 0:
            return 0
        if n == 1:
            return 1
        while(count<=n):
            result=preprenum+prenum
            preprenum=prenum
            prenum=result
            count+=1
        return result

還有一種思路:

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        s = []
        s.append(0)
        s.append(1)
        for i in xrange(2,n+1):
            s.append(s[i-1]+s[i-2])
        return s[n]

這是我看了大佬的思路,又改進了下的。