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的阶乘。*/
相关推荐
虾球xz29 分钟前
游戏引擎学习第276天:调整身体动画
c++·学习·游戏引擎
Aric_Jones29 分钟前
lua入门语法,包含安装,注释,变量,循环等
java·开发语言·git·elasticsearch·junit·lua
Akiiiira29 分钟前
【日撸 Java 三百行】Day 12(顺序表(二))
java·开发语言
虾球xz30 分钟前
游戏引擎学习第275天:将旋转和剪切传递给渲染器
c++·学习·游戏引擎
EndingCoder38 分钟前
2025年JavaScript性能优化全攻略
开发语言·javascript·性能优化
qq_386322691 小时前
华为网路设备学习-21 IGP路由专题-路由过滤(filter-policy)
前端·网络·学习
Despacito0o2 小时前
QMK键盘固件自定义指南 - 打造你的专属键盘体验
c语言·计算机外设·qmk
J先生x2 小时前
【IP101】图像处理进阶:从直方图均衡化到伽马变换,全面掌握图像增强技术
图像处理·人工智能·学习·算法·计算机视觉
码上淘金5 小时前
【Python】Python常用控制结构详解:条件判断、遍历与循环控制
开发语言·python
Brilliant Nemo5 小时前
四、SpringMVC实战:构建高效表述层框架
开发语言·python