鍍金池/ 教程/ C++/ C++函數(shù)遞歸
C++用戶定義異常
C++ this指針
C++存儲(chǔ)類
C++函數(shù)
C++交換變量值
C++ continue語句
C++注釋
C++函數(shù)遞歸
C++ goto語句
C++函數(shù)-通過值調(diào)用和引用調(diào)用
C++重載
C++語言歷史
C++反轉(zhuǎn)數(shù)字
C++ try/catch語句
C++是什么?
C++變量
C++ break語句
C++運(yùn)算符
C++第一個(gè)程序
C++繼承
C++虛函數(shù)
C++將十進(jìn)制轉(zhuǎn)換為二進(jìn)制
C++矩陣乘法
C++對(duì)象和類
C++基礎(chǔ)輸入輸出(cin,cout,endl)
C++文件和流
C++求素?cái)?shù)
C++ if/else語句
C++友元函數(shù)
C++命名空間
C++面向?qū)ο蟾拍?/span>
C++階乘
C++關(guān)鍵字
C++重載
C++聚合
C++結(jié)構(gòu)體
C++的特點(diǎn)(特性)
C++打印字母表三角
C++ switch語句
C++多態(tài)
C++ do-while循環(huán)
C++字符串
C++ static關(guān)鍵字
C++錯(cuò)誤處理
C++ for循環(huán)
C語言與C++的區(qū)別
C++ while循環(huán)
C++開發(fā)環(huán)境的安裝
linux環(huán)境下編譯C++ 程序
C++枚舉
C++指針
C++斐波納契數(shù)列
C++阿姆斯壯數(shù)字
C++接口
C++教程
C++數(shù)組
C++數(shù)據(jù)抽象
C++回文程序?qū)嵗?/span>
C++打印數(shù)字三角
C++將數(shù)組傳遞到函數(shù)
C++多維數(shù)組
C++將數(shù)字轉(zhuǎn)換字符

C++函數(shù)遞歸

當(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    
}

C++遞歸示例

下面來看看一個(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)用方法: