js递归

 1 /*
 2         例如:1 + 2 + 3 + … + 100
 3         F(100) = F(99) + 100;
 4         F(99) = F(98) + 99;
 5         F(98) = F(97) + 98;
 6  7         F(2) = F(1) + 2;
 8         F(1) = 1;//递归结束
 9         F(n) = F(n-1) + n;
10     */
11     /*
12         实现递归的三个步骤:
13         1.    递归结束条件(明确的返回值)
14         2.    F(n) 和 F(n-1)的关系,递归(循环)的语句
15         3.    递归函数必须要有返回值。
16     */
17     /*
18         100! = 1 * 2 * 3 * ... * 100;
19     */
20 
21     /*
22     function sum(n) {
23         if(n == 1) return 1;//计算结束
24         return sum(n-1) + n;
25     }
26     var s = sum(100);
27     console.log(s);
28     */
29 
30     function jc(n) {
31         if(n == 1) return 1;
32         return jc(n-1) * n;
33     }
34     console.log(jc(6));
35 
36     /*
37         F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
38         0 1 1 2 3 5 8 13...
39     */
40     function f(n) {
41         if(n == 0) return 0;
42         if(n == 1) return 1;
43         return f(n - 1) + f(n - 2);
44     }
45     console.log(f(7));

 

posted @ 2017-04-09 14:28 惠远建 阅读(...) 评论(...) 编辑 收藏