尾递归 - Tail Recursion, 尾递归,即是递归调用放在方法末尾的递归方式
不用尾递归,函数的堆栈耗用难以估量,需要保存很多中间函数的堆栈。如果有尾部归递,就只需要叠套一个堆栈,
因为计算机只需要将函数的参数改变再重新调用一次。利用尾部递归最主要的目的是要优化。
如阶乘:
int TailRecurtion(int num,int n) //尾递归
{
if(num == 1)
{
return n; //直接计算 成 n ,n即为最后结果
}
else
{
return TailRecurtion(num-1,n*num);
}
}
详情请参见:http://www.cnblogs.com/JeffreyZhao/archive/2009/04/01/tail-recursion-explanation.html