递归的学习

  递归一般用于解决三类问题:
   (1)数据的定义是按递归定义的。(Fibonacci函数,n的阶乘)
   (2)问题解法按递归实现。(回溯)
   (3)数据的结构形式是按递归定义的。(二叉树的遍历,图的搜索)
 
   例子1:用线性递归实现Fibonacci函数

<script type="text/javascript">
function func(n){
if(n < 2){
return n;
}
return func(n-1)+func(n-2);
}

// func(5) = func(4) 数值是3 + func(3) 数值是2 = 5
// func(4) = func(3) 数值是2 + func(2) 数值是1 = 3
// func(3) = func(2) 数值是1 + func(1) 数值是1 = 2
// func(2) = func(1) 数值是1 + func(0) 数值是0 = 1;
// func(1) = func(1) 数值是1 = 1;
// func(0) = func(0) 数值是0 = 0;

console.log(func(5));
</script>

 

 

 

posted @ 2018-05-16 18:56  我爱分享网  阅读(106)  评论(0)    收藏  举报