分别用递归和动态规划求解
递归:
C++写的才能满足题目要求,python写的会超出时间限制

class Solution {
public:
    int Fibonacci(int n) {
        //递归解法
        if(n <= 0)
            return 0;
        if(n == 1 || n == 2)
            return 1;     
        return Fibonacci(n-1)+Fibonacci(n-2);
    }
};

动态规划方式:
根据斐波拉契数列的关系便可找到规律,进而完成代码编写,即:F(0) = 0, F(1) = 1,F(N) = F(N-1) + F(N -2)

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        #动态规划法
        mylist = [0,1]
        if n <= 0:
            return mylist[0]
        if n == 1:
            return mylist[1]
        for i in range(2,n+1):
            mylist.append(mylist[i - 1] + mylist[i - 2])
        return mylist[n]
        #递归,运行超时
        #if n <= 0:
        #   return 0
        # if n == 1 or n == 2:
        #    return 1
        # return self.Fibonacci(n-1) + self.Fibonacci(n-2)