目录
一、什么是递归
程序调用自身的编程技巧称为递归( recursion) 。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小

递归的两个必要条件:
- 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
- 每次递归调用之后越来越接近这个限制条件。
int main()
{
printf("hehe\n");
main();
return 0;
}
函数自己调用自己,一直打印 “hehe” 但是一会程序自己会停下来。这不是真正的递归,是一个死循环(不满住递归的两个条件)
递归实现:接收一个整型值(无符号),按照顺序打印它的每一位。
例如:
输入:1234
输出:4321
void print(unsigned int n)
{
if (n > 9)
{
print(n / 10);
}
printf("%d", n % 10);
}
int main()
{
unsigned int num = 0;
scanf("%u", &num);
//递归-函数自己调用自己
print(num);
return 0;
}
基本的实现逻辑如图:
写递归代码的时候注意:
- 不能死递归,都有跳出条件,每次递归逼近跳出条件
- 递归层次不能太深(可能会栈溢出)
二、递归与迭代
求第n个斐波那契数,(可以递归实现也可以迭代实现)(不考虑溢出)
我们知道像:1,1,2,3,5,8,13,21,34…… 这样第n个数等于第n-1个数加上n-2个数的和的一个数列就是斐波那契数列
int Fib(int n)
{
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
int main()
{
int n = 0;
scanf("%d",&n);
int ret = Fib(n);
printf("%d\n", ret);
return 0;
}
当我们求很小的斐波那契数时,计算机计算很快。但是当我们要求的一个很大的,比如第50个斐波那契数,计算机就会算很久(大概要五分钟)。大家可以试一试。
为什么会这么慢呢。因为递归实现效率太低,要重复大量的计算(计算层次太多)。
代码实现的基本逻辑如图:
我们可以看一下代码在计算过程中 n=3(计算第三个斐波那契数) 这一步要执行的次数:
在计算第40个斐波那契数时,要计算三千多万次第三个斐波那契数。可想而知递归实现的效率有多低。而且计算太大还会造成程序崩溃。
int Fib(int n)
{
int a = 1;
int b = 1;
int c = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = Fib(n);
printf("%d\n", ret);
return 0;
}
循环迭代的方式计算很快
提示:
- 很多问题是以迭代的形式进行解释的,这只是因为它比非递归的形式更为清晰。
- 但是很多问题的迭代实现往往比递归实现的效率更低。虽然代码的可读性稍微差些。
- 当一个问题相当复杂时,难以用迭代实现时,此时递归实现的简洁性便可以补偿它所带来的运行开销。
相关推荐:
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
SEO是如何推动企业增长的关键力量,深圳罗湖网站建设设计
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
SEO门户:打造高效网站流量的关键利器,创意网站建设要求
ChatGPT网页版内容显示不全的解决方案:如何轻松解决问题?,课件ai
什么是seo艺术,什么是seo seo有何价值 ,ai写作生成器 推荐
seo网站页面优化包括什么,seo页面优化技术 ,no ai写作
GoogleSEO打满分自然流量会高吗?揭开SEO优化的真相,猪插画ai
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
ChatGPT破解:让AI打破语言与思维的边界,ai模板vis
AI工具,让工作效率翻倍:AI工具教程全面解析
《SEO教材:打造网站流量的核心利器,教你轻松SEO优化技巧》,咖啡网站建设总结文案
用AI写文章,释放你的创作潜力!
SEO注意事项:助力网站流量提升的关键策略,济宁快速seo优化价格
用AI优化文章,轻松提升内容质量与创作效率
seo系列什么意思,seo的分类 ,que n ai je
seo竞价做的什么工作,seo 竞价 ,office智能ai
AI缩写在线:让人工智能助力你行业前沿技术,ai uhrehara
用AI写文,开启创作新时代
ChatGPT与讯飞:AI语音与智能对话的完美融合,ai直角变圆角
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
文字生成AI:开启创意写作的新纪元
SEO任何:如何通过精准优化让网站流量突破极限,太原网站建设培训班
SEO和品牌营销:如何通过搜索引擎优化打造品牌影响力,建邺seo软件
seo渠道优化是什么,seo渠道推广怎么做 ,ai121333
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
什么是seo快排,seo快排方案 ,ai剪图形
seo计算了什么,seo的常用术语 ,ai智能有意思的口令
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
AI代写文章:高效创作的新风尚
软件AI:颠覆未来的智能革命
SEO本站:提升网站流量与排名的秘密武器,荆门专业的抖音seo
SEO在线服务-让您的网站快速跃升至搜索引擎前列,江西小红书营销推广案例
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
SEO符合:提升网站排名的秘诀,助力企业赢在搜索引擎优化的赛道,优化没续费 网站没了
ChatGPT打开后空白:如何解决这个困扰并高效使用AI助手,ai四声怎么写
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
seo网赚什么意思,网站seo赚钱 ,ai打不开ai
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
未来工作方式!AI在线工具让效率倍增,工作变轻松
二SEO是什么,h二seo三是什么 ,ai手术机
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
“多网建站”助力企业跨越发展,开启全新数字化时代,海南网站优化电池
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
AI搜索写文章是什么意思?人工智能赋能内容创作的未来,高德地图 ai
Chat免费,让沟通无界限,尽享智能对话时代,ai没办法置顶