我正在学习 C++ 中的递归,我想知道这两个递归函数之间是否存在差异。 else语句有必要吗?哪个效率更高?
感谢您的帮助。
int fact(int n)
{
if (n == 1)
return 1;
return n * fact(n - 1);
}
int fact(int n)
{
if (n == 1)
return 1;
else
return n * fact(n - 1);
}
最佳答案
它们完全一样。不需要 else
,因为函数在到达 return
语句后退出。要仔细检查它们在您的机器上是否相同,您可以进行时序比较,但它们可能会编译成相同的东西。
关于c++ - 递归函数的正确返回方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930870/