當(dāng)函數(shù)在同一個(gè)函數(shù)內(nèi)調(diào)用時(shí),它被稱為C++中的遞歸。 調(diào)用相同函數(shù)的函數(shù)(函數(shù)自已調(diào)用自已)稱為遞歸函數(shù)。
在函數(shù)調(diào)用之后調(diào)用自身并且不執(zhí)行任何任務(wù)的函數(shù)稱為尾遞歸。 在尾遞歸中,我們通常使用return
語句調(diào)用相同的函數(shù)。
下面來看看一個(gè)簡單的遞歸示例。
recursionfunction(){
recursionfunction(); //calling self function
}
下面來看看一個(gè)例子,使用C++語言中的遞歸來打印一個(gè)數(shù)的階乘。
#include<iostream>
using namespace std;
int main()
{
int factorial(int);
int fact,value;
cout<<"Enter any number: ";
cin>>value;
fact=factorial(value);
cout<<"Factorial of a number is: "<<fact<<endl;
return 0;
}
int factorial(int n)
{
if(n<0)
return(-1); /*Wrong value*/
if(n==0)
return(1); /*Terminating condition*/
else
{
return(n*factorial(n-1));
}
}
上面代碼執(zhí)行結(jié)果如下所示 -
Enter any number: 5
Factorial of a number is: 120
可以通過下面的圖形來理解上面的遞歸調(diào)用方法: