剑指offer——08斐波那契数列

题目描述

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

n<=39

有多种方法,简单的循环、递归、动态规划;

 1 class Solution01 {
 2 public:
 3     int Fibonacci(int n) {
 4         int a = 0, b = 1, c;
 5         for (int i = 2; i <= n; ++i)
 6         {
 7             c = a + b;
 8             a = b;
 9             b = c;
10         }
11         return n == 0 ? 0 : b;
12     }
13 };
14 
15 class Solution02 {
16 public:
17     int Fibonacci(int n) {
18         if (n <= 1)
19             return n;
20         return Fibonacci(n - 1) + Fibonacci(n - 2);
21     }
22 };
23 
24 class Solution03 {
25 public:
26     int Fibonacci(int n) {
27         if (n <= 1)
28             return n;
29         vector<int>dp(n + 1);
30         dp[0] = 0, dp[1] = 1;
31         for (int i = 2; i <= n; ++i)
32             dp[i] = dp[i - 1] + dp[i - 2];
33         return dp[n];
34     }
35 };
原文地址:https://www.cnblogs.com/zzw1024/p/11652499.html