在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;
}
希望这对你有帮助。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何在Elixir中调用递归函数并行
- 递归函数有效,但无法记忆
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 如何将递归函数(具有两个基本情况)转换为迭代函数
- 将递归函数转换为迭代函数
- 转换递归函数
- Python 3.3 如何将这个递归函数转换为纯收益循环版本?
- 将这个糟糕但功能强大的代码转换为递归函数
- 在turbo c++中,可以将一个普通递归函数转换为尾递归函数来对其进行优化
- 将迭代函数转换为递归函数
- 将迭代函数转换为递归函数
- 如何从递归函数返回指针,该函数将抛光表示法转换为反向抛光表示法
- 递归函数的转换
- 转换递归函数并使其迭代
- 将递归函数转换为尾递归函数
- 将迭代函数转换为递归函数
- C++ |需要帮助从 for 循环函数转换 - >递归函数
- 这个递归函数是如何自动转换成迭代函数的
- 在递归函数中,c++基转换过程中意外输出到屏幕