Python语言程序设计入门4.4 函数的嵌套调用与递归.pptx

Python语言程序设计入门4.4 函数的嵌套调用与递归.pptx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

程序设计入门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!;deffactorial(n):fn=1foriinrange(1,n+1):fn*=ireturnfn

函数的嵌套调用设计函数factorial(n),用于求n!;deffactorial(n):fn=1foriinrange(1,n+1):fn*=ireturnfn设计函数combination(m,n),用于求组合数;defcombination(m,n):cmn=factorial(m)//(factorial(n)*factorial(m-n))returncmn

函数的嵌套调用deffactorial(n):fn=1foriinrange(1,n+1):fn*=ireturnfndefcombination(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!deffactorial(n):ifn==0:return1#递归出口else:returnn*factorial(n-1)#递归条件n=eval(input(请输入一个正整数:))print({}!={}.format(n,factorial(n)))

函数的递归调用例4-13:编写程序,用递归计算n!

函数的递归调用例4-13:编写程序,用递归计算n!上述计算5!的递归过程为:

函数的递归调用递归是计算机科学的一种重要算法,也是求解问题的一种重要思想;递归的优点是,定义简单,逻辑清晰,利用递归求解问题,可以得到一个清晰、简洁的解决方案,使代码看起来更加整洁、优雅,易于将复杂问题分解成更简单的子问题;递归的缺点是,递归的逻辑很难调试、跟进,递归算法求解问题的运行效率相对较低;任何用递归求解的问题,一般来说都能用循环来求解,通常,哪种能设计出更自然地反映问题本质的直观解决方案,就选用哪种方法。

函数的递归调用递归是计算机科学的一种重要算法,也是求解问题的一种重要思想;递归的优点是,定义简单,逻辑清晰,利用递归求解问题,可以得到一个

文档评论(0)

喜宝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档