在同一个函数中调用函数时,在 C++ 中称为递归。调用相同函数的函数称为递归函数。
调用自身并且在函数调用后不执行任何任务的函数称为尾递归。在尾递归中,我们一般用return语句调用同一个函数。
让我们看一个简单的递归示例。
recursionfunction(){ recursionfunction(); //调用自身函数 }
让我们看一个在 C++ 语言中使用递归打印阶乘数的示例。
#include<iostream> using namespace std; int main() { int factorial(int); int fact,value; cout<<"输入任意数字:"; cin>>value; fact=factorial(value); cout<<"一个数的阶乘是: "<<fact<<endl; return 0; } int factorial(int n) { if(n<0) return(-1); /*错误的值*/ if(n==0) return(1); /*终止条件*/ else { return(n*factorial(n-1)); } }
输出:
输入任意数字:5 一个数的阶乘是:120
我们可以通过下图来理解上述递归方法调用的程序: