汉诺塔中,我们需要考虑的是将当前层数中除去最后一层的其余层数通过C柱放在B柱上,然后将最后一层从A柱移到C柱,最后将剩余层数通过A柱从B柱移到C柱,如果说层数为1层,那么可以直接从A柱移到C柱。代码如下:
def move(n, a, b, c):
# 若为一层,直接移动
if n == 1 :
print u'{0}--->{1}'.format(a, c)
return
#移动除去最后一层到辅助柱上
move(n-1, a, c, b)
#移动最后一层
print u'{0}--->{1}'.format(a, c)
#移动除去最后一层到最终柱上
move(n-1, b, a, c)
move(3, 'A', 'B', 'C')
结果为: