在 Turbo C++ 中,可以将普通递归函数转换为尾递归来优化它吗?

In turbo c++ can a normal recursive function converted as tail-recursive to optimize it?

我正在使用普通递归函数在 C++ 中创建一个阶乘程序。如果输入值很大,我想将它转换为尾递归以防止堆栈溢出。如何将我的普通递归转换为尾递归?

// An example of tail recursive function
void print(int n)
{
   if (n < 0)  return;
   printf(" %d",n);

    // The last executed statement is recursive call
    print(n-1);
 }

我用 c++ 编写了一个示例尾递归函数

#include<iostream>
using namespace std;

// tail recursion
unsigned factTR(unsigned int num, unsigned int count)
{
    if (num == 0)  return count;

    return factTR(num-1, num*count);
}

// factTRecurive
unsigned int fact(unsigned int n)
{
    return factTR(n, 1);
}

// calling function
int main()
{
   cout << fact(8);
   return 0;
}

希望对您有所帮助。