何为递归:
函数自己调用自己。
应用场景:
当函数的运行结果依赖该函数的上一次运行结果时就需要递归。
注意事项:
1、递归必须要有出口,否则是死循环。
2、如果递归层级太深对资源的消耗很大。
案例:
请看如下数字,寻找规律并填写括号中应该是什么?
0 1 3 6 10 15 21 28 36 () 55
以上数字的规律为:
除了第一个0以外,后面的数字等于前面的数字+该数字所在位置,所以括号中的数字应该是45。
1 3 6 10 15 21 28 36
1=0+1
3=1+2
6=3+3
10=6+4
...
45=36+9
所以可以用以下函数来表达
f(n) 即:给函数传入一个数字,这个数字是1、2、3、4.......,求出对应位置上的那个数字是什么
f(n-1) + n 即:传入参数所代表的位置前面的数字+传入的数字
即:下一次的计算结果依赖上一次的计算结果,所以需要递归。
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>深入学习函数(一) 递归函数</title>
<script src="./jquery.js"></script>
</head>
<body>
<script type="text/javascript">
function f1(n){
if(n == 0){
return 0;
}else{
return n + f1(n-1);
}
}
console.log( f1(0) );
console.log( f1(1) );
console.log( f1(2) );
console.log( f1(3) );
console.log( f1(4) );
console.log( f1(5) );
console.log( f1(6) );
console.log( f1(7) );
console.log( f1(8) );
console.log( f1(9) );
console.log( f1(100) );
</script>
</body>
</html>
应用递归的场景往往会涉及一些算法,这部分内容比较深奥,大家尽力理解,对于入门来说,不理解也可以。
|