版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计入门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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销合同有效期内的运输责任
- 购销合同贷款的注意事项
- 贷款协议书范本示例
- 跨国技术服务协议
- 转让协议与合同的关联性分析
- 车辆抵押借款合同案例
- 运动服装销售合同
- 轻松应对历史学业水平测试
- 透气运动鞋购销
- 郑州地理一模解析地球秘密探索
- 大连地区适合种植药材
- 2022历史小说《漆园吏游梁》分析
- 产品质量整改措施
- 五禽戏Five Animal-imitating Exercise(中英文版)
- GB/T 9115-2010对焊钢制管法兰
- 主变倒送电措施
- GB/T 16917.1-2014家用和类似用途的带过电流保护的剩余电流动作断路器(RCBO)第1部分:一般规则
- 高中思想政治课选择性必修2《法律与生活》教材使用建议与典型课例研究课件
- 多效蒸馏水机课件
- 农业机械安全生产及法律法规课件
- DB22-T 5036-2020建设工程项目招标投标活动程序标准-(高清正版)
评论
0/150
提交评论