Python-18 函数:递归是神马
来源:互联网 发布:刘远原画网络班 编辑:程序博客网 时间:2024/05/21 14:05
递归
如果说优秀的程序员是伯乐,那么把递归比喻成神马再形象不过了。
“普通程序员用迭代,天才程序员用递归”
递归这个概念,是算法范畴,本不属于Python,但是如果掌握了递归方法,会发现是一个非常棒的编程思路!
用普通方法实现一个正整数的阶乘
def factorial(n): result = n for i in range(1,n): result*=i return resultnumber = int(input('请输入一个正整数:'))result = factorial(number)print('%d 的阶乘是:%d' % (number,result))
>>> ================================ RESTART ================================>>> 请输入一个正整数:1010 的阶乘是:3628800>>>
使用递归实现阶乘
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))
>>> ================================ RESTART ================================>>> 请输入一个正整数:1010 的阶乘是:3628800>>>
python递归调用的默认深度是100层
>>> def resout():resout()>>> resout()
File "<pyshell#4>", line 2, in resout resout() File "<pyshell#4>", line 2, in resout resout() File "<pyshell#4>", line 2, in resout resout()RuntimeError: maximum recursion depth exceeded>>>
如果需要改变递归深度,如下,1000000为设置的递归深度>>> import sys>>> sys.setrecursionlimit(1000000)
用递归计算斐波那契数列
def fab(n): if n == 1 or n == 2: return 1 if n > 2: return fab(n-1)+fab(n-2)number = int(input('请输入菲波那切数列的顺序值:'))result = fab(number)print('第 %d 个斐波那契数值为:%d' % (number,result))
汉诺塔
def hanoi(n,x,y,z): if n == 1: print(x,'-->',z) else: hanoi(n-1,x,z,y) #将前n-1个盘子从x移到y上 print(x,'-->',z) #将最底下的盘子从x移动到z上 hanoi(n-1,y,x,z) #将y上的n-1个盘子移动到z上n = int(input('请输入汉诺塔的层数:'))hanoi(n,'X','Y','Z')
阅读全文
0 0
- Python-18 函数:递归是神马
- 022:函数:递归是神马
- 第22讲:函数:递归是神马
- FishC笔记—22 讲 函数:递归是神马
- 10.递归是神马?recursion
- 【PYTHON笔记】(1) : Python是神马东东?
- 神马是哭笑不得?
- 这是神马玩意儿?
- IIS是神马?
- 神马是boke?
- 神马是快乐?
- 神马是XHR?
- 这个是神马情况???
- 这是神马意思?
- 神马是url重写?
- Recursive tree是神马
- Volatile是神马
- 文凭是神马
- 一个叫Spring的框架,“SSH”框架之总结(Hibernate、Spring、SpringMVC)
- linux查找、搜索字符或文件
- caffe配置GLOG库时 ./configure提示没有那个文件或目录
- HDU 6048 Puzzle
- Professional JS(13.4.3Mouse and Wheel/Keyboard and Text/composition/Mutation/HTML5 Events[part])
- Python-18 函数:递归是神马
- 【算法入门】深度优先搜索(DFS)
- java有哪些常用类 String的方法
- C语言如何实现继承和多态
- 集合框架复习二
- ActiveMQ持久化消息的三种方式
- C语言练习题复习
- linux下sql基本操作
- VueJS安装到入门