版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计入门Python语言……函数……第4章函数的嵌套调用与递归函数的嵌套调用12函数的递归调用函数的嵌套调用嵌套调用,是指在函数内又调用其他函数。main()……………a函数…………b函数……………①③④⑤⑥⑦②函数的嵌套调用例4-12:编写程序,输入m,n,求组合数:设计函数factorial(n),用于求n!;设计函数combination(m,n),用于求组合数;设计主函数main(),输入m、n的值,调用函数combination(m,n),求一个组合数。函数的嵌套调用例4-12:编写程序,输入m,n,求组合数:设计函数factorial(n),用于求n!;def
factorial(n):fn=1
foriin
range(1,n+1):fn*=i
returnfn函数的嵌套调用设计函数factorial(n),用于求n!;def
factorial(n):fn=1
foriin
range(1,n+1):fn*=i
returnfn设计函数combination(m,n),用于求组合数;def
combination(m,n):cmn=factorial(m)//(factorial(n)*factorial(m-n))
returncmn函数的嵌套调用def
factorial(n):fn=1
foriin
range(1,n+1):fn*=i
returnfndef
combination(m,n):cmn=factorial(m)//(factorial(n)*factorial(m-n))
returncmn设计主函数main(),求一个组合数。m=eval(input("m="))n=eval(input("n="))
print("m,n的组合数为",combination(m,n))main()#调用主函数执行程序defmain():
函数的嵌套调用例4-12:编写程序,输入m,n,求组合数:函数的嵌套调用例4-12:编写程序,输入m,n,求组合数:函数的递归调用当一个函数直接或间接的调用它自身时,称为函数的递归调用。
自己调用自己的函数,称为递归函数,递归函数一定要有递归条件和递归出口;
递归条件,也称递归体,就是函数调用自己,将大问题分解为类似的小问题;
递归出口,递归函数必须要有一个或几个明确的递归结束条件。函数的递归调用例4-13:编写程序,用递归计算n!将n!表达成递归函数的形式:
n!=n×(n-1)!,将求n!转为求(n-1)!,(n-1)!又转为求(n-2)!,……,直至0!=1,这个过程称为“递推”;当递推到“递归出口”时,就开始回归,通过0!求出1!,通过1!求出2!,……,最后通过(n-1)!求出n!,这个过程称为“回归”。函数的递归调用例4-13:编写程序,用递归计算n!def
factorial(n):
if
n==0:
return
1
#递归出口
else:
returnn*factorial(n-1)#递归条件n=eval(input("请输入一个正整数:"))print("{}!={}".format(n,factorial(n)))函数的递归调用例4-13:编写程序,用递归计算n!函数的递归调用例4-13:编写程序,用递归计算n!上述计算5!的递归过程为:函数的递归调用递归是计算机科学的一种重要算法,也是求解问题的一种重要思想;递归的优点是,定义简单,逻辑清晰,利用递归求解问题,可以得到一个清晰、简洁的解决方案,使代码看起来更加整洁、优雅,易于将复杂问题分解成更简单的子问题;递归的缺点是,递归的逻辑很难调试、跟进,递归算法求解问题的运行效率相对较低;任何用递归求解的问题,一般来说都能用循环来求解,通常,哪种能设计出更自然地反映问题本质的直观解决方案,就选用哪种方法。函数的递归调用递归是计算机科学的一种重要算法,也是求解问题的一种重要思想;递归的优点是,定义简单,逻辑清晰,利用递归求解问题,可以得到一个清晰、简洁的解决方案,使代码看起来更加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校图书馆微博受众的使用与满足:基于复旦大学图书馆微博的深度剖析
- 高校公共体育理论课网络教学系统:构建、困境与突破
- 高新技术制造业上市公司财务危机预警:模型构建与实证研究
- 高新区视角下我国高等工程人才供给与制造业发展的协同困境与突破路径
- 驾校教练员资格审核细则
- 初级护师考试基础练习题及答案
- 制盐蒸发结晶设备安全题库及答案解析
- 饲料和饲料添加剂管理条例实施细则
- 幼儿游戏活动与指导考试复习题库及答案
- 2026耒阳地理面试题目及答案
- 脑梗死合并脑出血的护理
- 06 主变及附属设备安装施工方案
- 儿科补液计算入门课件
- 桥梁典型病害课件
- 中学教职工工作失职失误责任追究制度
- 国有企业供电单位经济活动分析模板
- 眼镜定配技术说课 说课一等奖
- 脑血管解剖医学课件
- GB/T 2506-2005船用搭焊钢法兰
- 中外建筑史-古代建筑发展概况-课件
- 物资验收单(到货)
评论
0/150
提交评论