function jiecheng(n) {
if (n > 1) {
return jiecheng(n - 1) * n;
}else {
return n;
}
}
document.write(jiecheng(3));
这个是怎么计算的,到最后还能往回执行?
递归,
第一次n=3
时计算返回jiecheng(3) = jiecheng(3 - 1) * 3
;
然后计算jiecheng(3-1) =jiecheng(1) * 2
;
又jiecheng(1)=1
,
最后结果是jiecheng(3) = jiecheng(1) * 2 * 3 =6
;
阶乘可以用两种方法实现,一是用while循环实现,二是用函数的递归实现,题主这是用的函数的递归原理(函数直接或者间接的调用本身)实现,题里面就是这样递归调用实现了一次又一次的乘法,从而达到递归的效果!希望回答对博主有帮助,👍!
这个是递归吧,该方法调用该方法
递归