【问题标题】:Factorial function in C++ with Tail Recursion [duplicate]带有尾递归的 C++ 中的阶乘函数
【发布时间】:2021-03-18 10:27:02
【问题描述】:

我想知道尾递归阶乘函数会是什么样子。在我的一次讲座中,他们说它应该很容易实现,但我无法想象如何实现它。

提前致谢!

【问题讨论】:

标签: c++ c recursion tail-recursion


【解决方案1】:

只是一个基本的Csn-p:

unsigned int factorial(unsigned int n){
    if(n == 0){
        return 1;
    }
    else{
        return n * factorial(n - 1);
    }
}

这里,factorial() 函数再次调用factorial() 函数,即recursion

【讨论】:

  • 我知道 GCC 会进行尾递归,但标准不保证尾递归,是吗?
  • 这不是尾递归阶乘函数,因为它修改了递归调用的返回值。有关尾递归阶乘函数的示例,请参阅 this answer 标记的重复项之一。
猜你喜欢
  • 2021-01-25
  • 2023-03-25
  • 1970-01-01
  • 2018-06-08
  • 2018-10-16
  • 1970-01-01
  • 2019-07-24
  • 2015-01-08
  • 2019-08-06
相关资源
最近更新 更多