【发布时间】:2021-03-18 10:27:02
【问题描述】:
我想知道尾递归阶乘函数会是什么样子。在我的一次讲座中,他们说它应该很容易实现,但我无法想象如何实现它。
提前致谢!
【问题讨论】:
-
int fac(int n, int acc=1){return n?fac(n-1, acc*n):acc;}
标签: c++ c recursion tail-recursion
我想知道尾递归阶乘函数会是什么样子。在我的一次讲座中,他们说它应该很容易实现,但我无法想象如何实现它。
提前致谢!
【问题讨论】:
int fac(int n, int acc=1){return n?fac(n-1, acc*n):acc;}
标签: c++ c recursion tail-recursion
只是一个基本的Csn-p:
unsigned int factorial(unsigned int n){
if(n == 0){
return 1;
}
else{
return n * factorial(n - 1);
}
}
这里,factorial() 函数再次调用factorial() 函数,即recursion。
【讨论】: