C语言递归函数示例:阶乘计算
C语言递归函数示例:阶乘计算
以下是一个简单的递归传递函数示例,它可以计算一个给定数的阶乘:
#include <stdio.h>
int factorial(int n)
{
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main()
{
int n = 5;
int result = factorial(n);
printf("%d! = %d\n", n, result);
return 0;
}
该函数的递归过程如下:
- 当
factorial(5)被调用时,它会检查n是否等于0; - 因为
n不为0,所以它会调用factorial(4)并返回5 * factorial(4); factorial(4)会调用factorial(3)并返回4 * factorial(3);factorial(3)会调用factorial(2)并返回3 * factorial(2);factorial(2)会调用factorial(1)并返回2 * factorial(1);factorial(1)会检查n是否为0,并返回1;- 所有递归调用都返回并计算结果:
factorial(1) = 1,factorial(2) = 2 * 1 = 2,factorial(3) = 3 * 2 = 6,factorial(4) = 4 * 6 = 24,factorial(5) = 5 * 24 = 120; - 最终结果
120被返回给调用函数main()。
原文地址: https://www.cveoy.top/t/topic/mjuy 著作权归作者所有。请勿转载和采集!