C語言遞歸

當在一個函數中調用同一個函數(自身)時,它在C語言中被稱為遞歸。調用相同函數的函數稱為遞歸函數。

一個調用自身,並且在函數調用後不執行任務的函數被稱為尾遞歸。 在尾遞歸中,我們通常使用return語句調用相同的函數。下麵給出了一個尾遞歸遞歸的例子。

recursionfunction(){
    recursionfunction();// 函數名稱一樣,自身調用自身函數
}

C語言中尾遞歸的例子

我們來看一個使用C語言中的尾遞歸列印因數數的例子。首先創建一個名稱為:recursion的工程,在這個工程下創建一個原始檔案:recursion-example.c,其代碼如下 -

#include<stdio.h>

int factorial(int n)
{
    if (n < 0)
        return -1; /*Wrong value*/
    if (n == 0)
        return 1; /*Terminating condition*/
    return (n * factorial(n - 1));
}

void main() {
    int fact = 0;
    fact = factorial(5);
    printf("\n factorial of 5 is %d \n", fact);

}

執行上面代碼,得到以下結果 -

factorial of 5 is 120

我們可以通過下麵的圖形來理解上述遞歸方法調用的程式:


上一篇: C語言通過值和引用函數 下一篇: C語言存儲分類