
什么是递归
发布日期:2021-05-14 15:18:05
浏览次数:20
分类:精选文章
本文共 981 字,大约阅读时间需要 3 分钟。
递 归 可 以 是 循 环 递归可以是循环 递归可以是循环
能用循环做的,就能用递归做,在算法比赛中,一般只写递归,不写循环
循环 for (起始条件;循环终止条件;循环条件变化 ) === 》
递归:递归起始条件: func_recursive(n); ;有使递归趋于结束的语句:func_recursive(++n) ; 递归终止条件 n == 9
#include#include #include // 直接或是或是间接调用自己的情形,就递归调用。recursive// 递归,是比较接近自然语言特性的一种调用方式。递归必须要用合理的出口,不然会挂掉//循环 === 》 递归:递归起始条件:func_recursive(n) 有使递归趋于结束的语句:func_recursive(++n) 递归终止条件 n == 9int func_recursive(int n){ if(n == 9) { printf("%d \n",n) ; return 0; } else { printf("%d \n",n) ; return func_recursive(++n); }}int main(){ // for循环 for (int i =0;i<10;i++) { printf("%d \n",i) ; } printf("**********一样一样的*****************\n"); // 迭代 int n = 0; int ret = func_recursive(n); return 0;}
递归和循环,有共同的特点,有起点,有终点,重复作同样的事情。
所以很多情况,两者是可以相互转换的。
如果上升一下理论高度,作一个重复面有明确起点和终点的事,有递归和迭代两种选择。
循环其实就是一种迭代。
递归的方式,写法比较简洁,符合正常逻辑,但代码理解难度大,内存消耗大(易导致栈溢出)
所以能用迭代(lterative)解决的问题,不要用递归来完成。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年05月05日 03时48分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
maven 项目部署到tomcat下 没有class文件
2021-05-14
算法训练 未名湖边的烦恼(递归,递推)
2021-05-14
算法训练 完数(循环,数学知识)
2021-05-14
什么是接口
2021-05-14
2020版nodejs12.18.3安装配置教程
2021-05-14
iview组件库中,Form组件里的Input,无法正确绑定on-enter事件
2021-05-14
记录-基于springboot+vue.js实现的超大文件分片极速上传及流式下载
2021-05-14
JavaScript高级程序设计第四版学习记录-第九章代理与反射
2021-05-14
怎么解决Windows 10文件/文件夹正在使用无法删除
2021-05-14
matlab函数:fix 向0取整
2021-05-14
ORCAD创建元件库时,格点对不起怎么办
2021-05-14
Allegro中如何消除器件本身Pin间距报错
2021-05-14
AD中拖动器件,无法移动在一起如何解决
2021-05-14
linux--练习001-基础类型
2021-05-14
Flask--简介
2021-05-14
Flask模板--过滤器与测试器
2021-05-14
16 python基础-恺撒密码
2021-05-14
06.1 python基础--结构控制
2021-05-14
Frame--Api框架
2021-05-14
Frame--WEB框架
2021-05-14