long fact (int n) //使用递归算法计算阶乘{ long ans; if (n>0) ans = n*fact(n-1); else ans = 1; return 0;}以上代码是被调用函数定义,我想知道这个函数工作的每一步,以及原理。
按箭头来执行,其实内部用的是堆栈的知识。其实最关键的是何时才结束递归,对于此问题n<=0 时执行ans = 1返回;
我还是不明白,它返回时是怎样计算得到120的,这个计算的过程有点理解不了,目前我对堆栈的知识还没学到。