当前位置:网站首页>C语言 函数递归
C语言 函数递归
2022-08-04 00:08:00 【卷饼85】
函数递归
函数递归就是自己调用自己来解决问题。
在解决一个问题时,通过对问题进行一次次的分解得到所对应的值,然后再将每次解决的问题所得的值进行合并,最终解决问题。
优点
代码简洁清晰,可读性好
缺点
1.时间和空间消耗较大。每一次函数调用都需要在栈中分配空间,往栈里面存入和取出数据都需要时间。
2.递归会造成栈溢出的问题。栈的大小是有限的,如果函数递归深度太大,所需要的内存空间可能会大于栈区的内存,会造成栈溢出的情况。
习题
1到n的和
1到n的和
int add(int n)
{
if (n == 1)return 1;
return add(n - 1) + n;
}
int main()
{
printf("%d",add(4));
return 0;
}
运行结果:
斐波那契数列
斐波那契数列
int fei(int n)
{
if (n == 1 || n == 2)return 1;
return fei(n - 1) + fei(n - 2);
}
int main()
{
printf("%d",fei(6));
return 0;
}
运行结果:
二分查找递归
二分查找递归
int BinarySearch0(int*nums,int target,int begin,int end)
{
int mid = begin + (end-begin) / 2;
if (begin > end)return -1;
if (nums[mid] > target)return BinarySearch0(nums, target, begin, mid - 1);
else if (nums[mid] < target)return BinarySearch0(nums, target, mid + 1, end);
else if (nums[mid] == target)return mid;
return {
};
}
int main()
{
int nums[] = {
1,2,3,4,6,7,8,9};
printf("%d",BinarySearch0(nums,6,0,7));//打印出6所在的下标
return 0;
}
运行结果:
倒着打印数字
递归打印数字
void a(int n)
{
if (n != 0)
{
printf("<%d>", n % 10);
a(n / 10);
}
}
int main()
{
a(123123123);
return 0;
}
运行结果:
边栏推荐
- Nanoprobes Alexa Fluor 488 FluoroNanogold 偶联物
- 现货白银需要注意八大事项
- Jar a key generation document database
- 扩展卡尔曼滤波EKF
- 【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
- View the version number of CUDA, pytorch, etc.
- pcl点云数据 转化为 Eigen::Map
- Nanoprobes Mono- Sulfo -NHS-Nanogold的使用和应用
- 利用matlab求解线性优化问题【基于matlab的动力学模型学习笔记_11】
- 求解同余方程 数论 扩展欧几里得
猜你喜欢
【MySQL —— 索引】
2022-08-03: What does the following go code output?A: 2; B: 3; C: 1; D: 0.package main import "fmt" func main() { slice := []i
伦敦银最新均线分析系统怎么操作?
【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
OpenCV 图像拼接
Node.js的基本使用(三)数据库与身份认证
建木DevOps流程的快速运用
LYVE1抗体丨Relia Tech LYVE1抗体解决方案
POE交换机全方位解读(下)
教你如何定位不合理的SQL?并优化之
随机推荐
2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。 package main import “fmt“ func main() { slice := []i
Nanoprobes Alexa Fluor 488 FluoroNanogold 偶联物
苹果对高通说:我4.45亿美元买下一个新园区,可能计划加快基带芯片自研
简单了解下 TCP,学习握手和挥手以及各种状态到底是怎么样的
FinClip, help smart TV more imagination
【性能优化】MySQL常用慢查询分析工具
ENS域名注册量创历史新高 逆市增长之势?光环之下存在炒作风险
咱们500万条数据测试一下,如何合理使用索引加速?
北京电竞元宇宙论坛活动顺利召开
[Miscellaneous] How to install the specified font into the computer and then use the font in the Office software?
c语言分层理解(c语言指针(上))
初始 List 接口
Shell编程之循环语句与函数
- the skip/skipif Pytest learning
【超详细教程】LVS+KeepAlived高可用部署实战应用
jav一键生成数据库文档
win10+cuda11.7+pytorch1.12.0 installation
Justin Sun: Web3.0 and the Metaverse will assist mankind to enter the online world more comprehensively
【面经】被虐了之后,我翻烂了equals源码,总结如下
YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)