我在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);
}
答案 0 :(得分:1)
它们完全一样。不需要else
,因为在达到return
语句后退出该函数。要仔细检查它们在您的机器上是否相同,您可以进行时序比较,但它们可能会编译成相同的东西。