递归函数三大特点:
- 函数自己调用自己
- 一般情况有参数
- 一般情况下有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));