Bootstrap

C语言 学习 日志 递归函数 2024/12/12

C语言 学习 日志  递归函数

介绍:

  1. 初始调用:递归函数被首次调用。
  2. 递归调用:递归函数在其定义中调用自身,创建新的栈帧。
  3. 基本情况检查:每次递归调用时,检查是否满足基本情况。如果满足,返回结果并开始回溯。
  4. 回溯:递归调用返回,相应的栈帧被移除,控制权交还给上一级调用。
  5. 结果组合:递归调用返回的结果被组合起来,形成最终的结果。

递归函数的应用场景

递归函数广泛应用于各种算法和数据结构操作中。例如:

  • 数学计算:如计算阶乘、斐波那契数列等。
  • 树和图的遍历:如深度优先搜索(DFS)、二叉树的前序、中序和后序遍历等。
  • 分治算法:如快速排序、归并排序等。
  • 动态规划:如计算最长公共子序列、背包问题等。

递归函数的核心思想是将一个复杂的问题分解为一个或多个较小的子问题,

这些子问题的结构与原问题相似。

通过不断调用自身,递归函数可以逐步解决这些子问题,最终解决原问题。

 简单理解就是 : 在函数中定义自己调用自己 直到满足条件

int dg(int n){

if(n==0)
{

return 1;
}
else{

return n * dg(n-1);
}



}

/*这个函数首先判断n是否为0,
如果是则返回1(因为0和1的阶乘定义为1)。如果n大于1,则通过递归调用dg(n - 1)并乘以n来计算n的阶乘。*/

;