递归函数三大特点:
- 函数自己调用自己
- 一般情况有参数
- 一般情况下有return
[tip type=”info” ]注:递归可以解决循环能做的所有事情,有一些循环不容易解决的事情,递归也能解决。[/tip]
//计算1~n的和?
//正常函数写法
function sum(n){
var res = 0;
for(i=1;i<=n;i++){
res += i;
}
return res;
}
alert(sum(100));
//递归写法
/* 方法:1.首先去找临界值,即无需计算,获得的值。
2.找这一次和上一次的关系。
3.假设当前函数已经可以使用,调用自身算上一次。
sum(100)== sum(99)+ 100;
sum(n)== sum (n-1)+n;
*/
function sum(n){
if(n == 1){
return 1;
}
return sum(n-1)+n;
}
alert(sum(100));