File tree 2 files changed +90
-0
lines changed
2 files changed +90
-0
lines changed Original file line number Diff line number Diff line change
1
+ # 斐波那契数
2
+
3
+ ### 题目描述
4
+
5
+ ** 斐波那契数** ,通常用 ` F(n) ` 表示,形成的序列称为** 斐波那契数列** 。该数列由 ` 0 ` 和 ` 1 ` 开始,后面的每一项数字都是前面两项数字的和。也就是:
6
+
7
+ ```
8
+ F(0) = 0, F(1) = 1
9
+ F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
10
+ ```
11
+
12
+ 给定 ` N ` ,计算 ` F(N) ` 。
13
+
14
+ ** 示例 1:**
15
+
16
+ ```
17
+ 输入:2
18
+ 输出:1
19
+ 解释:F(2) = F(1) + F(0) = 1 + 0 = 1.
20
+ ```
21
+
22
+ ** 示例 2:**
23
+
24
+ ```
25
+ 输入:3
26
+ 输出:2
27
+ 解释:F(3) = F(2) + F(1) = 1 + 1 = 2.
28
+ ```
29
+
30
+ ** 示例 3:**
31
+
32
+ ```
33
+ 输入:4
34
+ 输出:3
35
+ 解释:F(4) = F(3) + F(2) = 2 + 1 = 3.
36
+ ```
37
+
38
+
39
+
40
+ ** 提示:**
41
+
42
+ - 0 ≤ ` N ` ≤ 30
43
+
44
+ ### 解题思路
45
+
46
+ ** 思路**
47
+
48
+ 利用递归思想,递归公式` F(n) = F(n - 1) + F(n - 2) ` ,递归的终止条件` F(1) = 1 ` ,` F(2) = 2 ` 。
49
+
50
+ ** 算法**
51
+
52
+ ``` javascript
53
+ let preResult = {};
54
+ var fib = function (N ) {
55
+ if ( N === 0 ) return 0 ;
56
+ if ( N === 1 ) return 1 ;
57
+ if ( preResult[N ] ){
58
+ return preResult[N ];
59
+ } else {
60
+ preResult[N ] = fib (N - 1 ) + fib (N - 2 );
61
+ }
62
+ return fib (N - 1 ) + fib (N - 2 );
63
+ };
64
+ ```
65
+
66
+
67
+
68
+ ** 复杂度分析**
69
+
70
+ 暂无
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number } N
3
+ * @return {number }
4
+ */
5
+
6
+ /**
7
+ * Author: Mcnwork2018
8
+ */
9
+
10
+ let preResult = { } ;
11
+ var fib = function ( N ) {
12
+ if ( N === 0 ) return 0 ;
13
+ if ( N === 1 ) return 1 ;
14
+ if ( preResult [ N ] ) {
15
+ return preResult [ N ] ;
16
+ } else {
17
+ preResult [ N ] = fib ( N - 1 ) + fib ( N - 2 ) ;
18
+ }
19
+ return fib ( N - 1 ) + fib ( N - 2 ) ;
20
+ } ;
You can’t perform that action at this time.
0 commit comments