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

#问题:将原本在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")

猜你喜欢

转载自blog.csdn.net/qq_50709355/article/details/123346099