【经典算法实现 2】递归
发布日期:2021-06-29 14:52:31
浏览次数:2
分类:技术文章
本文共 594 字,大约阅读时间需要 1 分钟。
一、 递归
由于递归函数调用自己,因此编写这样的函数时很容易出错,进而导致无限循环。
由此,编写递归函数时,必须告诉它何时停止递归。每个递归函数都有两部分:
基线条件(base case)和递归条件(recursive case)。递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。
其格式为:
// 举例一,使用递归正序或逆序打序void func(i){ printf(" i=%d ",i); // 逆序打印,如果输入0,则打印 10,9,8,7,6,5,4,3,2,1 if( i<= 1){ // 基线条件,决定函数何时退出 return; }else{ // 递归条件,决定函数何时调用自身 i = i-1; func(i); printf(" i=%d ",i); // 逆序打印,如果输入0,则打印 1,2,3,4,5,6,7,8,9,10 }}
// 举例二,递归计算一个数的阶乘int func(i){ if( i== 1){ // 基线条件,决定函数何时退出 return; }else{ // 递归条件,决定函数何时调用自身 return i * func(i-1); // 输入5, 输出 5 * 4 * 3 * 2 * 1 }}
转载地址:https://ciellee.blog.csdn.net/article/details/107244894 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月23日 05时02分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于java的俄罗斯方块的设计与实现
2019-04-29
基于java的魂斗罗的设计
2019-04-29
基于java的网页内容管理
2019-04-29
基于java的学生管理系统
2019-04-29
基于java网盘搜索的设计与实现
2019-04-29
基于SSM的仿小米商城源码
2019-04-29
基于SSM的医院人事管理系统的设计与实现
2019-04-29
基于SSM的网上购物系统的设计与开发
2019-04-29
基于SSM框架的BS微博系统的设计与实现
2019-04-29
超市订单管理系统
2019-04-29
基于ssm的民宿网站
2019-04-29
基于JavaWeb的物流管理系统的设计与实现
2019-04-29
基于Java的飞机大战游戏的设计与实现论文
2019-04-29
基于java实现的超级马里奥游戏
2019-04-29
keepalived 实现高可用,负载均衡
2019-04-29
linux发送邮件通知
2019-04-29
linux不删除文件:替换rm命令
2019-04-29
Centos6 搭建lnmp环境
2019-04-29
Hbase优化:使用压缩snappy,lz4
2019-04-29
maven 安装第三方jar包到本地仓库
2019-04-29