//递归模拟演示:阶乘
//下面是一个递归函数
function factorial(n){ if(n===0){ return 1 }else{ return n*factorial(n-1) } }
//使用栈来模拟计算
function fact(n){ var s=new Stack(); while(n>1){ s.push(n--) } var product=1; while(s.length()>0){ product*= s.pop(); } return product }
下面来测试一下:
console.log(factorial(5)); console.log(fact(5));
结果:
120 120