Python练习(2):递归解决汉诺塔问题

有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,设移动次数为H(n)。求H[n],当然,这个问题还有非递归实现,有时间再去探究.

def move(n, a, b, c):
    if(n==1):
        print(a,' --> ',c);
        return
    else:
        move(n-1,a,c,b)
        print(a,' --> ',c);
        move(n-1,b,a,c)

move(10,'A','B','C')
    原文作者: 汉诺塔问题
    原文地址: https://blog.csdn.net/pp634077956/article/details/50775528
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞