0
点赞
收藏
分享

微信扫一扫

一分钟让你真正理解汉若塔问题——python实现

双井暮色 2022-03-12 阅读 46
linqp2pxml

#问题:将原本在A盘的三个木块,依次从A移动到B,保证在移动的过程中小盘永远在大盘的上面
#A B C 三个盘
#mFrom 源头 初始为A盘
#mTo 目的地 初始为B盘
#mHelp 辅助 初始为C盘
def printHanoiTower(N, mFrom, mTo, mHelp):

    if N == 1:
        #出口 如果N=1 则递归回调
        print("move", N, "from", mFrom, "to", mTo)
    else:
        #将N-1个盘从源头移动到辅助盘
        printHanoiTower(N-1, mFrom, mHelp, mTo)
        #将第N个盘从源头移动到目的地
        print("move", N, "from", mFrom, "to", mTo)
        #将N-1个盘从辅助盘移动到目的地
        printHanoiTower(N-1, mHelp, mTo, mFrom)
        
if __name__ == "__main__":
    printHanoiTower(10, "A", "B", "C")

举报

相关推荐

0 条评论