递归函数正确的返回方式

时间:2015-08-10 23:37:07

标签: c++ function recursion

我在C ++中学习递归,我想知道这两个递归函数之间是否存在差异。是否有必要发表其他声明?哪个更有效率?

感谢您的帮助。

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);
}

1 个答案:

答案 0 :(得分:1)

它们完全一样。不需要else,因为在达到return语句后退出该函数。要仔细检查它们在您的机器上是否相同,您可以进行时序比较,但它们可能会编译成相同的东西。