前几天被问到一道很简单的阶乘的题目,自己脑抽了一下,居然算少了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