n*recurrence(n-1)

前几天被问到一道很简单的阶乘的题目,自己脑抽了一下,居然算少了20....起身走出门口,自己的思维才活过来,都不想说自己多傻了...


先看看题目

function recurrence(n){
  if(n==1){
    return n
  }else{
    return n*recurrence(n-1);
  }
};
alert(recurrence(5));

我当时写的很起劲,大脑短路,居然脑子里像打了断点一样去运行每一步计算,然后写了个100上去......

结果是120....

起身走出去,我才想起来,就是一道简单的阶乘,已经泪目....


1.那就来打个断点吧
(1)5x(5-1)=20
(2)20x(4-1)=60
(3)60x(3-1)=120
(4)120x(2-1)=120
(5)return 120

2.简化公式
5x(5-1)x(4-1)x(3-1)x(2-1)=120

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容