递归
- 函数的内部可以调用这个函数自身,从而发起对函数的一次迭代。在新的迭代中,又会执行调用函数自身的语句,从而又产生一次迭代。当函数执行某一次时,不再进行新的迭代,函数被一层一层返回,函数被递归
- 递归是一种较为高级的编程技巧,他把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
递归的要素
边界条件:确定递归到何时终止,也称为递归出口 递归模式:大问题是如何分解为小问题,也称为递归体
用递归来实现阶乘
思路:
案例
//书写一个函数,这个函数内部自己会调用自己,从而形成递归
function factorial(n){
//函数的功能是计算n的阶乘,n!不就是n*(n-1)!么??
//这个就是递归的出口,如果计算1的阶乘,可以不用递归了,直接告诉你答案就是1
if(n==1)return 1;
//如果询问的不是1的阶乘,就返回n*(n-1)!
return n * factorial(n-1);
}
var result = factorial(4)
alert(result)