📅  最后修改于: 2020-09-25 05:08:21             🧑  作者: Mango
调用自身的函数称为递归函数。并且,这种技术称为递归。
void recurse()
{
... .. ...
recurse();
... .. ...
}
int main()
{
... .. ...
recurse();
... .. ...
}
下图显示了递归调用的方式。
递归一直持续到满足某些条件为止。
为了防止无限递归,可以在一个分支进行递归调用而另一个不进行递归调用的情况下使用if … else语句(或类似方法)。
// Factorial of n = 1*2*3*...*n
#include
using namespace std;
int factorial(int);
int main() {
int n, result;
cout << "Enter a non-negative number: ";
cin >> n;
result = factorial(n);
cout << "Factorial of " << n << " = " << result;
return 0;
}
int factorial(int n) {
if (n > 1) {
return n * factorial(n - 1);
} else {
return 1;
}
}
输出
Enter a non-negative number: 4
Factorial of 4 = 24
如我们所见, factorial()
函数正在调用自身。但是,在每次调用期间,我们将n
的值减小了1
。当n
小于1
, factorial()
函数最终返回输出。
以下是在C++中使用递归的优缺点。