Устранение хвостовой рекурсии
Хвостовой рекурсией (tail recursion) называется такой тип рекурсии, при котором вызов рекурсивной функции следует непосредственно за оператором return. Классическим примером хвостовой тому является алгоритм вычисления факториала:
int fact(int n, int result)
{
if(n == 0)
{
return result;
}
else
{
return fact(n - 1, result * n);
}
}