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

我們可以通過下面的圖形來理解上述遞迴方法呼叫的程式: