版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计入门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年不动产投资信托合同三篇
- UI设计规范与注意事项详解
- 2025年高中化学实验操作评分标准试题及真题
- 2026年钢琴艺术表现力强化训练及考核试题
- 汽车维修技术操作考试及答案真题
- 电子商务平台运营文书检验试题及答案
- 企业内部培训与提升方案
- 医疗设备维修与保养流程
- 珀莱雅考核制度
- 广西壮族自治区贵港市202年秋季学期高二年级期末学科素养检测考试政治试卷
- 医疗影像诊断与报告书写规范
- 旅游规划与产品开发
- 2025年税务会计期末试题及答案
- (2025年)麻醉综合疗法在孤独症谱系障碍儿童中临床应用的专家共识
- 全膝关节置换术患者心理因素关联探究:疼痛信念、自我效能与睡眠质量
- 后循环缺血护理常规课件
- T-HAS 148-2025 工厂化菌糠栽培双孢蘑菇技术规程
- 宇树科技在服务机器人市场的竞争策略 课件
- 农村兄弟二人分家协议书范文
评论
0/150
提交评论