JavaScript學(xué)習(xí)筆記-對階乘的理解
標(biāo)簽:
JavaScript
之前看到阶乘的时候,总是比较糊涂,不知道结果是怎样算出来。我今天对阶乘的步骤进行了拆解,发现也挺容易理解的。
先看一下阶乘的代码:
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
點(diǎn)擊查看更多內(nèi)容
5人點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦