一、递归函数
已知: 函数可以调用函数。结论: 一个函数在内部调用自己本身,这个函数就是递归函数。

(1)计算阶乘 factorial: n! = 1 * 2 * 3 * … * n

def factorial(num):"""0! = 11! = 12! = 2 * 1 = 2 * 1!3! = 3*2*1  = 3*2!4! = 4*3*2*1 = 4*3!....n! = n * n-1 *n-2 .....1 = n * (n-1)!求num的阶乘"""result = 1for item in range(1, num + 1):result = result * itemreturn resultdef recursive_factorial(num):"""使用递归求num的阶乘"""# 如果num等于0或者1, 返回1;if num in (0, 1):return 1# num的阶乘为num*(num-1)!else:return num * recursive_factorial(num - 1)print("3的阶乘: ", factorial(3))
print("6的阶乘: ", factorial(6))
print("3的阶乘: ", recursive_factorial(3))
print("6的阶乘: ", recursive_factorial(6))
print("998的阶乘: ", recursive_factorial(998))  ##最大递归深度



(2)斐波那契数列(Fibonacci sequence)

"""
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:
1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
"""
def fib(num):if num <=2:return 1else:return fib(num-1) + fib(num-2)result =fib(4)
print(result)

(3)汉诺塔问题
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

movecount = 0
def hanoi(n,a='A',b='B',c='C'):""":param n: 盘子个数:param a: 初始塔:param b: 缓存塔:param c: 目标塔:return:移动次数"""if n ==1 :#声明全局变量global movecountmovecount += 1print(a,'--->',c)else:hanoi(n-1,a,c,b)hanoi(1,a,b,c)hanoi(n-1,b,a,c)hanoi(3)
print("移动次数:",movecount)

13_Pyton之递归函数相关推荐

  1. 递归函数 集合 列表 元组

    #递归函数 <1>什么是递归函数 通过前面的学习知道一个函数可以调用其他函数. 如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数. 一个递归函数必定会有一个基线条 ...

  2. python 函数递归一次增加一次变量_python3--函数(函数,全局变量和局部变量,递归函数)...

    1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合. 函数名:就相当于是程序代码集合的名称 参数:就是函数运算时需要参与运算的值被称作为参数 函数体:程序的某个 ...

  3. runaway深度递归函数测试及相关汇编指令

    这是一个深度递归的例子. #include <stdio.h> #include <stdlib.h>int recurse(int x) {int a[1<<15 ...

  4. Python 2.4 递归函数

    递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用本身,这个函数就是递归函数. 举个例子:计算阶乘n!=1*2*3*4*5*...*n,用函数fact(n)表示,可以看出 fact(n)= ...

  5. Python进阶之递归函数的用法及其示例

    作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  6. 面试彩蛋1:斐波那契数列用递归函数、循环函数实现

    题目也可改为:将递归函数改为循环函数 写出下列函数的实现方法 1.使用递归函数实现 int Fib(int n){if(n==0) return 0; else if(n==1) return 1; ...

  7. python中递归函数的实例_Python 递归函数详解及实例

    Python 递归函数 如果一个函数体直接或者间接调用自己,那么这个函数就称为递归函数.也就是说,递归函数体的执行过程中可能会返回去再次调用该函数.在python里,递归函数不需要任何特殊的语法,但是 ...

  8. python开发函数进阶:递归函数

    一,什么叫递归 #递归 #在一个函数里调用自己 #python递归最大层数限制 997 #最大层数限制是python默认的,可以做修改 #但是我们不建议你修改 例子和尚讲故事 1 #!/usr/bin ...

  9. js递归函数使用介绍

    所谓的递归函数就是在函数体内调用本函数. 使用递归函数一定要注意,处理不当就会进入死循环.递归函数只有在特定的情况下使用 ,比如阶乘问题 一个10以内的阶乘,js递归函数实例代码: <!DOCT ...

最新文章

  1. AIX存储管理(二)物理卷管理
  2. Boost:字符串正则表达式的测试程序
  3. 2020双十一实时大屏_2020拼多多双十一,拼多多双十一活动
  4. C#灰度图转伪彩色图
  5. 用ajax传值input file,获取 input type=file 标签的内容,并使用ajax进行请求到服务器...
  6. 深入研究java.lang.Runtime类【转】
  7. linux中head下的所有参数,Linux 命令之head 命令使用
  8. 12c RMAN新特性之Recover Table
  9. mysql中添加中文存储和显示功能
  10. Hearing Range
  11. 修改一行代码,将图像匹配效果提升14%
  12. JSP编程中遇到的问题及解决
  13. Django Zip文件下载
  14. 上波浪线符号复制_波浪线符号(word小技巧)
  15. 电子技术课设------交通灯信号控制器
  16. deepin photoshop_体验国产操作系统深度deepin一个月,谈谈使用感受!
  17. php eclipse aptana,eclipse aptana插件自动提示
  18. ThinkPad T410i 安装 Mac10.8.3 记录
  19. 关于站内信的开发思路
  20. [转]教你修复win7中复制粘贴失效的问题

热门文章

  1. 如何在Final Cut Pro X中安裝fcpx模板
  2. LayUI 数据表格 分页失效
  3. Fiddler:限制网速,模拟弱网
  4. Android 面试基础
  5. Android Recovery升级原理
  6. 好玩的 CSS - 40 个有趣的 CSS 网站
  7. python外国网站爬虫_python 网络爬虫-爬取网页外部网站
  8. windows 10 ltsc企业版实现C盘系统还原功能
  9. 自动驾驶专题介绍 ———— 毫米波雷达
  10. 【Linux】目录结构和硬盘分区