剑指Offer__7、斐波那契数列

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

思路:

斐波那契数列的第一项和第二项分别为1、1,从第三项开始符合公式:f(n) = f(n-1) + f(n-2)

Solution:

Python

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

(2)更节省内存
# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        if n == 0:
            return 0
        if n <= 2:
            return 1
        #fibonacci = [0,1,1]
        a,b =1,1
        for i in range(3,n+1):
            tmp = a+b
            a = b
            b = tmp
        return b

 

你可能感兴趣的:(剑指Offer)