Python递归方法练习题.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PPyytthhoonn递递归归⽅⽅法法练练 习习题题 ⼀、阶乘 n = 1x2x3x4x5xxn ``` def j echeng(n): f n == 1: return 1 else: return n*j echeng(n- 1) n= nt ( nput (请输⼊n的值n=)) A= j echeng(n) pr nt (f{n}的阶乘n!={A}) ``` 或者采⽤reduce函数reduce() 函数会对参数序列中元素进⾏累积。函数将⼀个数据集合 (链表,元组等)中的所有数据进⾏下列操作 :⽤传给 reduce 中的函数 funct on (有两个参数)先对集合中的第 1、2 个元素进⾏操作,得到的结果再与第三个数据⽤ funct on 函数运算,最后得 到⼀个结果。 from functools mport reduce n= nt ( nput (请输⼊n的值n=)) b= reduce(lambda x, y: x*y, range(1, n+1)) pr nt (f{n}的阶乘n!={b}) ⼆、使⽤递归编写⼀个power()函数来进⾏幂运算,也就是说power(x,n)返回x的n次幂的值。y=x^n def power(x,n): f n == 0: return 1 else: return x*power(x,n- 1) x= nt ( nput (请输⼊x的值x=)) n= nt ( nput (请输⼊n的值n=)) A= power(x,n) pr nt (f{x}的{n}次幂的值为{A}) 三、斐波那契数列 已知⼀个数列 :1、1、2、3、5、8、13、。。。。的规律为从3开始的每⼀项都等于其前两项的和,这是斐波那契数列。求满⾜规律的100以内 的所以数据. a= 0 b= 1 wh le b 100: pr nt (b, end=,) ##pr nt (a, end=,) 的话,是从0开始。最后⼀个少⼀个数 a, b= b, a+b 四、⽤欧⼏⾥得算法求两个数的最⼤公约数~ # 简易版 def Common_d v sor(x,y): f x % y == 0: return y else: t= x % y return Common_d v sor(y,t) pr nt (Common_d v sor(24,16)) # ⾼级版 def Common_d v sor(x,y): f y: return Common_d v sor(y, x % y) else: return x pr nt (Common_d v sor(24,16)) 五、汉诺塔问题 # 汉诺塔 :汉诺塔(⼜称河内塔)问题是源于印度⼀个古⽼传说的益智玩具。⼤梵天创造世界的时候做了三根⾦刚⽯柱⼦,在⼀根柱⼦上从下往上按 照⼤⼩顺序摞着64⽚黄⾦圆盘。 # ⼤梵天命令婆罗门把圆盘从下⾯开始按⼤⼩顺序重新摆放在另⼀根柱⼦上。并且规定,在⼩圆盘上不能放⼤圆盘,在三根柱⼦之间⼀次只能移动 ⼀个圆盘 # 当只有⼀个盘⼦的时候,只需要从将A塔上的⼀个盘⼦移到C塔上。 # 当A塔上有两个盘⼦是,先将A塔上的1号盘⼦(编号从上到下)移动到B塔上,再将A塔上的2号盘⼦移动的C塔上,最后将B塔上的⼩盘⼦移动到 C塔上。 # 当A塔上有3个盘⼦时,先将A塔上编号1⾄2的盘⼦(共2个)移动到B塔上(需借助C塔),然后将A塔上的3号最⼤的盘⼦移动到C塔,最后将B塔上 的两个盘⼦借助A塔移动到C塔上。 # 当A塔上有n个盘⼦是,先将A塔上编号1⾄n- 1的盘⼦(共n- 1个)移动到B塔上(借助C塔),然后将A塔上最⼤的n号盘⼦移动到C塔上,最后将B塔 上的n- 1个盘⼦借助A塔移动到C塔上。 # 综上所述,除了只有⼀个盘⼦时不需要借助其他塔外,其余情况均⼀样(只是事件的复杂程度不⼀样)。 def hanno(n, a, b, c): # 汉诺塔问题 f n == 1: pr nt (a, --, c) else: hanno(n - 1, a, c, b) pr nt (a, --, c) hanno(n - 1, b, a, c)

文档评论(0)

有志者事竟成 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7114163151000053

1亿VIP精品文档

相关文档