当前位置:网站首页>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;
}
运行结果:
边栏推荐
猜你喜欢
【性能优化】MySQL性能优化之存储引擎调优
北京电竞元宇宙论坛活动顺利召开
Minimized installation of debian11
咱们500万条数据测试一下,如何合理使用索引加速?
Jmeter-断言
搭建好pytorch环境后,pip和conda指令不能用
Using matlab to solve the linear optimization problem based on matlab dynamic model of learning notes _11 】 【
【杂项】如何将指定字体装入电脑然后能在Office软件里使用该字体?
Go编译原理系列7(Go源码调试)
It will invest about 200 billion US dollars in the United States in 20 years, and Samsung Electronics looks so handsome
随机推荐
Shell 用法梳理总结
Read FastDFS in one article
超级完美版布局有快捷键,有背景置换(解决opencv 中文路径问题)
JS获得URL超链接的参数值
sqlnet.ora文件与连接认证方式的小测试
The problem of disorganized data output by mnn model
HNUCM 您好中国
jav一键生成数据库文档
MPLS Comprehensive Experiment
2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。 package main import “fmt“ func main() { slice := []i
分子个数 数论(欧拉函数 前缀和
【OpenCV图像处理】 图像拼接技术
利用matlab求解线性优化问题【基于matlab的动力学模型学习笔记_11】
2022/8/3 Exam Summary
直播系统聊天技术(八):vivo直播系统中IM消息模块的架构实践
扩展卡尔曼滤波EKF
ENS域名注册量创历史新高 逆市增长之势?光环之下存在炒作风险
绕任意轴旋转矩阵推导
苹果对高通说:我4.45亿美元买下一个新园区,可能计划加快基带芯片自研
Jmeter-参数化