c++ - 递归函数的正确返回方式

标签 c++ function recursion

我正在学习 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/

相关文章:

c++ - 我的小部件没有显示在主窗口中。 qt

c - 在函数中使用 printf 返回 void

javascript - 递归函数,通过从 n 中减去 2 直到 n = 0 或 1 来确定数字是偶数还是奇数

tsql - 如何递归读取所有记录并按级别深度显示 TSQL

windows - sed 可以在 Windows 中递归吗?

c++ - 用计数器扩展参数包

c++ - 如何从元组创建元组?

c++ - 从字符串中提取单个单词 C++

java - 如何删除不明确的函数调用

c - c中函数没有返回值