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的阶乘。*/
相关推荐
为何创造硅基生物5 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好5 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李5 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅5 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
nashane5 小时前
HarmonyOS 6学习:CapsLock键失效诊断与长截图完整实现指南
学习·华为·harmonyos
之歆6 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
jolimark6 小时前
C语言自学攻略:小白入门三步走
c语言·编程入门·学习路线·实践项目·自学攻略
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
xian_wwq7 小时前
【学习笔记】AGC协调控制系统概述
笔记·学习