遞歸調用的執行過程

/*
 * 計算階乘,演示遞歸調用的執行過程。
 */

#include <stdio.h>

int step = 0;

int recursion(int n)
{
    int v;

    if (n <= 1) 
        v = 1;
    else {
        v = n * recursion(n-1);    // 遞歸,直到n==2
        
        // 遞歸結束,逐層繼續執行
        step++;
        printf("step: %d, n: %d\n", step, n);
    }

    return v;
}

int main(void)
{
    int result;

    step = 0;
    result = recursion(5);
    printf("recursion result: %d\n", result);

    return 0;
}

/*
運行結果:

step: 1, n: 2
step: 2, n: 3
step: 3, n: 4
step: 4, n: 5

recursion result: 120

*/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章