1.概念
在C语言中,递归是一种函数调用自身的技术。通过递归,可以解决需要重复执行相同任务或者解决问题的情况。
递归函数通常包含两个部分:基本情况和递归情况。基本情况是递归终止条件,当满足这个条件时,递归将停止。递归情况描述了函数如何通过调用自身来解决更小规模的问题,并逐步接近基本情况。
2.递归实现问题
阶乘问题:n!=1*2*3*4*.....*n
方法一:循环实现
long long Fac(int N)
{
long long ret = 1;
for(int i = 2; i <= N; ++i)
{
ret *= i;
}
return ret;
}
方法二:递归实现
n!=n*(n-1)!,将n!问题变成一个相同丹规模更小的问题实现。代码实现如下:
int factorial(int n)
{
if(n <= 1)
return 1;
else
return n * factorial(n-1);
}
注:递归函数需要谨慎使用,因为如果递归深度过大,可能导致栈溢出的问题。此外,递归算法可能存在效率问题,因为每次递归调用都需要保存函数的局部状态。在实际开发中,应该根据具体情况选择是否使用递归。