函数递归是指函数在执行过程中调用自身的过程。它允许通过将问题分解成更简单的、自参考的子问题来解决问题。递归包括两个主要组件:定义终止条件的基本情况,以及使用修改后的输入再次调用函数的递归情况。
下面是一个递归函数的例子以及算法和源代码:
算法:
1. 定义指定递归应何时停止的基本情况。
2. 定义使用修改后的输入再次调用函数的递归情况。
3. 为每种情况实现必要的操作。
4. 确保递归调用最终到达基情况,以避免无限递归。
源代码(示例:使用递归进行阶乘计算):
#include <stdio.h>
int factorial(int n)
{
if (n == 0 || n == 1)
{
return 1;
}
else
{
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;
}
在这个例子中,我们使用递归计算一个数字的阶乘。阶乘()函数接受一个整数‘n’作为输入,并返回它的阶乘值。如果‘n’是0或1(基本情况),则函数返回1。否则(递归情况),它将‘n’乘以‘(n-1)’的阶乘。
在‘main()’函数中,我们调用‘factorial()’,其中‘num’等于5并存储结果。最后,我们将计算出的阶乘值打印到控制台。
这段代码的输出是“5的阶乘是:120”,表示5的阶乘是120。