#include <stdio.h>
// 递归函数计算阶乘
int factorial(int n) {
// 基本情况:0的阶乘为1
if (n == 0) {
return 1;
} else {
// 递归调用:n的阶乘等于 n * (n-1)的阶乘
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
int result = factorial(num);
printf("Factorial of %d is %d\n", num, result);
return 0;
}
在这个例子中,factorial 函数计算一个整数的阶乘。递归函数通常包括两个部分:
1. 基本情况(Base Case): 这是递归中的停止条件。在上述例子中,当 n 等于0时,递归停止,函数返回1。
2. 递归调用: 函数在递归调用中使用自身。在上述例子中,factorial 函数在递归调用中计算 n * factorial(n - 1)。
递归通常在解决可以被拆分成相似子问题的问题时非常有效。然而,要注意避免无限递归,确保递归在达到基本情况时能够终止。此外,递归可能会导致堆栈溢出,特别是在处理大规模数据时。在实际使用中,确保递归深度受到控制,或者考虑使用迭代等替代方法。
转载请注明出处:http://www.zyzy.cn/article/detail/13537/C 语言