- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
课时2迭代与递归;1.通过实例分析,理解迭代和递归算法的基本思想,掌握利用迭代和递归算法解决问题的基本方法。2.能正确分析递归公式和递归结束条件,灵活使用迭代和递归算法解决实际问题,提升学生的计算思维。;;;1.迭代算法的概念
不断用变量的______递推出______的过程称为迭代算法。
2.利用迭代算法解决问题,需要考虑的三个方面
(1)确定____________。
(2)建立_______________。
(3)控制____________。;3.递归算法的概念;4.设计递归算法时,需要满足的两个条件;正确区分迭代算法和递归算法
(1)迭代是利用变量的旧值推算出变量的一个新值;而递归算法是指一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大地减少代码量,降低编程的难度。因此,迭代算法效率较高,而递归算法比较占用空间,程序运行效率较低。
(2)递归是自己调用自己,而迭代就是不断地调用赋值语句;递归中一定有迭代,但是迭代中不一定有递归,大部分情况下递归和迭代可以相互转换。;;例1让计算机重复执行一组指令(或一些步骤),这组指令(或这些步骤)每执行一次时,都会将变量从原值递推出一个新值的算法是()
A.递推算法 B.递归算法 C.迭代算法 D.查找算法;;例2丑数是指不能被2、3、5以外的质数整除的数。判断丑数的自定义函数程序如下:;;;若在自定义函数中又出现调用自定义函数本身,则程序使用的是递归算法。而迭代算法是指迭代变量通过迭代关系,由旧值不断推出新值,从而求出问题的解。;;变式训练下列Python程序的功能是使用递归算法求ans的值。;;例4将十进制正整数转化为二进制数,对应的Python程序如下:;;变式训练有如下Python程序:;;;;2.在计算机内实现递归算法时所需的数据结构是();3.有如下Python程序段:;B;4.有如下Python自定义函数:;5.定义如下函数:;6.定义如下函数:有如下Python程序段:;7.输入两个正整数,使用递归算法求这两个正整数的最大公约数。;a=int(input(″输入第一个整数:″))
b=int(input(″输入第二个整数:″))
print(gcd(a,b))
(1)请在程序划线处填入合适的??码。
(2)程序运行时,输入两个整数分别为24、56,则输出的结果为______________。
(3)若要输出两个整数的最小公倍数,则应在程序的最后增加的语句为____________。;;;1.下列Python程序的功能是:求s=1+2+3+…+1000的和。;2.把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解,最终求出原问题的解,这种算法称为()
A.递归算法 B.迭代算法 C.枚举算法 D.解析算法;3.某Python程序如下:;C;4.小明学习了算法后,写了以下两段代码来求斐波那契数列的第6项:;C;5.编写一个简短的递归Python函数,它接受一个字符串s并输出其逆置字符串。例如字符串“dog”的逆置字符串为“god”。程序如下:;C;6.有如下Python程序:;C;7.有如下Python程序:;C;8.有如下函数:;A;9.对于任意一个自然数,若该自然数为偶数,则将其除以2;若是奇数,则将其乘以3,然后再加1。如此经过有限次运算后,总能够得到自然数1。;实现上述功能的Python程序如下,请回答下列问题。
x=int(input(″请输入一个整数:″))
print(x,″→″,end=″″)
n=0
whilex!=1:
if①________________:
x=x*3+1;(1)请在程序划线处填入合适的代码。
(2)程序执行时,输入x的值为120,则运算次数为__________。;10.有如下Python程序段:;C;11.李华同学尝试使用递归算法来实现斐波那契数列求值,用Python程序实现如下。;有关递归算法及其应用,下列说法正确的是();;12.斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,……。这个数列的规律是:从第3项开始,每一项都等于前两项之和。;(1)该程序中函数fibo()采用了________思想。
(2)阅读程序,补充划线处的代码。;13.求从自然数1、2、……、n中任取r个数的所有组合。例如n=5,r=3的所有组合为:;实现上述功能的Python代码如下,请在程序划线处填入合适的代码:
defcomb(m,k):
globalc#定义
您可能关注的文档
- 高中信息技术浙教版(2019)选修1 第三章 课时3 栈 课件.pptx
- 高中信息技术浙教版(2019)选修1 第四章 课时1 树与二叉树 课件.pptx
- 高中信息技术浙教版(2019)选修1 第四章 课时2 二叉树的基本操作 课件.pptx
- 高中信息技术浙教版(2019)选修1 第四章 验收卷(三) 树 课件.pptx
- 高中信息技术浙教版(2019)选修1 第五章 课时1 数据结构与算法关系 课件.pptx
- 高中信息技术浙教版(2019)选修1 第五章 课时3 数据排序 课件.pptx
- 高中信息技术浙教版(2019)选修1 第五章 课时5 二分查找 课件.pptx
- 高中信息技术浙教版(2019)选修1 第一章 课时2 数据的组织 课件.pptx
- 高中信息技术浙教版(2019)选修1 验收卷(四) 数据结构与算法 课件.pptx
- 高中信息技术浙教版(2019)选修1 验收卷(五) 综合练习(A) 课件.pptx
文档评论(0)