/*
* 计算阶乘,演示递归调用的执行过程。
*/
#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
*/