继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JavaScript学习笔记-对阶乘的理解

RossRoma
关注TA
已关注
手记 1
粉丝 6
获赞 8

之前看到阶乘的时候,总是比较糊涂,不知道结果是怎样算出来。我今天对阶乘的步骤进行了拆解,发现也挺容易理解的。
先看一下阶乘的代码:

function factorial(num){
  if(num<=1){
    return 1;
  }else{
    return num * factorial(num-1);
  }
}

为了方便,我们选一个比较小的数字来执行

factorial(3); //6

首先,第一步执行的时候,先检查传入的num的值是否符合<=1的条件,num值为3,显然不符合,所以返回的值为 3 x factorial(num-1),我们把第一次执行的结果简写为 3 x fun;
然后继续对这个fun进行求值,由于num进行了-1操作,所以新的num值为2,依旧不符合<=1的条件,所以我们把两次的执行结果写为 3 x (2 x fun);
num继续-1,这次值为1,满足了<=1的条件,直接返回结果1,且不再向下执行新的function,所以我们最终的运算结果为 3 x (2 x (1)) = 6;

如果还不明白,那我就用下面的代码再演示一遍:

factorial(3) =>
3*factorial(3-1) =>
3*(2*factorial(2-1)) =>
3*(2*(1)) => 6
打开App,阅读手记
5人推荐
发表评论
随时随地看视频慕课网APP

热门评论

刚开始学js 如果用for 循环去做 1!+2!+...+20!应该怎么写?

查看全部评论