IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python实现汉诺塔--递归 -> 正文阅读

[Python知识库]python实现汉诺塔--递归

原理解析

在这里插入图片描述
将最底层的盘子当作一个整体part2,其上的所有盘子当作一个整体part1。
将part1整体放入B柱子;将part2放入C柱子;后续递归地解决part1部分即可。

代码

def hano(n,a,b,c):
    """
        汉诺塔,将圆盘从a-->c 每次移动一个,小的一直在大的上方
        n,a柱的圆盘数
        a,a柱子
        b,b柱子
        c,c柱子
        函数打印移动顺序
        难点:
        1. 分别从n为1,2,3时 进行理解
        2. 函数执行时,传入实参;函数体内部执行时,使用的形参
    """
    # a柱子只有一个盘子,递归中明确的结束条件
    if n == 1:
        print("%s 号从 %s 移动到%s 位置"%(n,a,c))
    # 有一个以上的盘子,将第一个盘子以上的部分当作一个整体
    if n > 1:
        #移动最底层盘子以上的n-1个盘子,将其当作一个整体,移动到b
        hano(n-1,a,c,b)  #实际调用是实参,函数体内部是形参
        #然后将最底层的这个盘子移动到c
        print("%s 号从 %s 移动到%s 位置"%(n,a,c))

        #然后将n-1个盘子,从b移动到c
        hano(n-1,b,a,c)


hano(3,"A","B","C")

递归的要点

  1. 要有明确的结束条件
  2. 函数执行,需压栈,递归层数过多会导致效率低。
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:17:56  更:2021-11-23 12:18:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:35:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码