【程序设计基础】第九、十、十一章 综合实例分析 递归

实例分析:

  • 闰年算法变化
1 resule:=0
2 if (y mod 400=0) or ((y mod 4=0) and (y mod 100<>0))
3   then result:=1
4 return(result)
if (y mod 400=0) or ((y mod 4=0) and (y mod 100<>0))
  then result:=1
else result:=0
return(result)
result:= (y mod 400=0) or ((y mod 4=0) and (y mod 100<>0))
return(result)

条件判断的结果可以直接引用 “0”   “1”

  • 落地球反弹(事先不能确定循环次数的循环问题不能使用for循环,while循环和until循环)
  • 圆桌杀人(环形,转一周后即初始化变量,repeat until)
  • 对半查找(判断中点,剩下一半一半查找)

递归

递(问题相似性分解的问题)

归(求解)

  栈,手枪弹夹,先进晚出

写递归算法:

  1. 明确终止条件  
  2. 判断所有可能出现的递的情况

  递归算法的缺点:所占空间大,算法效率低

  小规模使用递归

阶乘

汉诺塔

正整数划分

求最大公约数

时间: 2024-12-28 02:45:24

【程序设计基础】第九、十、十一章 综合实例分析 递归的相关文章

《构建之法》阅读笔记第十&amp;十一章

<构建之法>第十&十一章主要讲述了在软件设计前期的需求分析问题上的方法和实践经验,分为“典型用户和场景”以及“软件设计与实现”.其中第十章大部分内容和教授上课所讲的一样比如说,用户的分类(典型用户可以包括以下内容: 1. 名字(越自然越好) 2. 年龄(不同年龄和收入的用户有不同的需求) 3. 收入 4. 代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要 5. 使用这个软件的典型场景 6. 使用本软件/服务的环境(在办公室/家里/沙

“全栈2019”Java第九十二章:外部类与内部类成员覆盖详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十二章:外部类与内部类成员覆盖详解 下一章 "全栈2019"Java第九十三章:内部类应用场景(迭代器设计模式) 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"

“全栈2019”Java第九十六章:抽象局部内部类详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十六章:抽象局部内部类详解 下一章 "全栈2019"Java第九十七章:在方法中访问局部内部类成员详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学

“全栈2019”Java第九十九章:局部内部类与继承详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十九章:局部内部类与继承详解 下一章 "全栈2019"Java第一百章:局部内部类可以实现接口吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小

Android笔记三十四.Service综合实例二

综合实例2:client訪问远程Service服务 实现:通过一个button来获取远程Service的状态,并显示在两个文本框中. 思路:如果A应用须要与B应用进行通信,调用B应用中的getName().getAuthor()方法,B应用以Service方式向A应用提供服务.所以.我们能够将A应用看成是client,B应用为服务端,分别命名为AILDClient.AILDServer. 一.服务端应用程序 1.src/com.example.aildserver/song.aidl:AILD文

算法导论笔记——第十~十一章 数据结构(一) 散列

第十章 基本数据结构 栈:可由数组表示 队列:可由数组表示 指针和对象:可由多数组表示.可用栈表示free list 有根数: 二叉树:左右孩子 分支无限制:左孩子右兄弟表示法 第十一章 散列表 数组:为每个元素保留一个位置 散列表:用于实际存储关键字比全部可能关键字少很多时,比如字典操作 解决散列冲突:链接法,开放寻址法 11.2 散列表 用链表法,在简单均匀散列的假设下,一次成功或不成功的查找所需要的平均时间为Θ(1+α),α为load factor. 11.3 散列函数 好的散列函数应(近

linux程序设计——第一个线程程序(第十二章)

第12章    POSIX线程 在第11章中,介绍了如何在linux中处理进程.但有时人们认为,用fork调用来创建新进程的代价太高.在这种情况下,如果能让一个进程同时做两件事情或者至少看起来是这样会非常有用,而且,人们页希望能有两件或更多的事情以一种非常紧密的方式同时发生,这就需要线程发挥作用了. 12.1    什么是线程 在一个程序中多个执行路线就叫做线程(thread).更准确的定义是:线程是一个进程内部的一个控制序列.虽然linux和许多其他的操作系统一样,都擅长同时运行多个进程,但迄

奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来

手机对我们的开发板按下红外发送键,很快一张图片从屏幕上显示出来,大功告成! 虽然代码还不能发布,但是看到成果的那一刻,内心还是非常激动的. 证明现在的我已非吴下阿蒙. 可惜没人和我分享胜利的喜悦,现在已是深夜. 最近一段时间,陈曦出差跑业务去了. 我打了个哈欠,终于可以美美的睡一觉了. 记得刚开始写代码的时候,有一次我的代码把系统搞死了,嘉庆看了一眼,云淡风轻地在代码里加了个sleep(1)解决问题,我才明白原来睡眠是这么重要的事情. 不光线程要睡觉,人更要睡觉. 因为太晚了,我决定不回家,直接

第16章 综合实例

简单的实体关系图 简单数据字典 用户(sys_user) 名称 类型 长度 描述 id bigint   编号 主键 username varchar 100 用户名 password varchar 100 密码 salt varchar 50 盐 role_ids varchar 100 角色列表 locked bool   账户是否锁定 组织机构(sys_organization) 名称 类型 长度 描述 id bigint   编号 主键 name varchar 100 组织机构名 p