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的阶乘。*/
相关推荐
樱花树下的数学喵10 小时前
手写简易 STL string|C++ 字符串底层实现
开发语言·c++
jimy111 小时前
C++ 报错的 qualifiers 的意思
开发语言·c++
水饺编程11 小时前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
留岁11 小时前
大模型推理部署 · 学习文档
学习
Zwawa11 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·单片机·嵌入式
小李不想当小白12 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
不积跬步无以至千里mmbb2612 小时前
rust_analysis
开发语言·后端·rust
暴力求解13 小时前
C++ ---继承(二)
开发语言·c++·算法
陈飞EXCEL13 小时前
北京杰飞 IT 旗下妙码生花少儿Python编程上线两大学习系统
开发语言·python·学习
SLAM必须dunk13 小时前
Agent入门学习一
学习