|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 永远的渣滓 于 2020-4-8 10:56 编辑
小甲鱼零基础python知识点总结(第22课)
概念:递归就是函数调用自身的行为
一.设置递归深度:
使用sys模块:
inport sys
sys.setrecursionlimit(深度)
二.迭代与递归:
1.迭代:
- def factorial(n):
- result = n
- for i in range(1,n):
- result *= i
- return result
- number = int(input('请输入一个整数:'))
- result = factorial(number)
复制代码
2.递归:
- def factorial(n):
- if n == 1:
- return 1
- else:
- return n * factorial(n-1)
- number = int(input('请输入一个整数:'))
- result = factorial(number)
- print("%d的阶乘是:%d" % (number, result))
复制代码
三.递归的优缺点:
1.优点:
(1)递归的基本思想是把规模大的问题转变成规模小的问题组合,从而简化问题的解决难度(例如汉诺塔游戏)。
(2)有些问题使用递归使得代码简洁易懂(例如你可以很容易的写出前中后序的二叉树遍历的递归算法,但如果要写出相应的非递归算法就不是初学者可以做到的了。)
2.缺点:
(1)由于递归的原理是函数调用自个儿,所以一旦大量的调用函数本身空间和时间消耗是“奢侈的”(当然法拉利也奢侈,但还是很多人趋之若鹜)。
(2)初学者很容易错误的设置了返回条件,导致递归代码无休止调用,最终栈溢出,程序崩溃。
|
评分
-
参与人数 2 | 荣誉 +3 |
鱼币 +3 |
贡献 +2 |
收起
理由
|
拍死人
| + 1 |
+ 1 |
|
鱼C有你更精彩^_^ |
冰河星云
| + 2 |
+ 2 |
+ 2 |
记得下次给我最佳答案哦~~~ |
查看全部评分
|