老师不太明白递归调用自身的问题

老师不太明白递归调用自身的问题

不太明白为什么这里可以重复调用自身return numfactorial(num-1),还有函数里面是如何递归计算出4的阶乘是24的。
function factorial(num){
if(num==1) return 1
return num
factorial(num-1)//不明白这里调用自身和递归计算的模式,为何我传入4会从2的阶乘到3的阶乘最后得出4的阶乘。虽然课件里讲解了道理,但是看不懂这一个简单的语句就能计算。
}
console.log(factorial(4))

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,关于这个式子, 老师帮助同学简单分析了下具体的运算过程,具体可以下图理解:

http://img1.sycdn.imooc.com//climg/5f8a93a20991636911650471.jpg

祝学习愉快~

好帮手慕慕子 2020-10-17 11:36:49

同学你好,能够自己发现并解决问题,真棒!!!!祝学习愉快~

  • 老师有个问题还是要问下,num*factorial(num-1)这一句话为什么会让num从4变到3直到1呢?这里如果是返回factorial(num-1)我还能理解,加了个num乘以factorial(num-1)就不太明白
    2020-10-17 13:42:37
weixin_慕移动6442865 提问者 2020-10-17 11:30:54

以解决,通过debugger了解了。

http://img1.sycdn.imooc.com//climg/5f8a656c0842f4b804480206.jpg

http://img1.sycdn.imooc.com//climg/5f8a656c0891a60703340382.jpg


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师