![](https://img-blog.csdnimg.cn/img_convert/79c2844591045aa66b83c152e3dff5da.png)
当n=1时,直接将盘子从i(原始柱)移动到j(目标柱)
当n=2时,先把前n-1个盘子,即第一个盘子从i(原始柱)移动到另一根柱(6-i-j),再把第n个盘子从i(原始柱)移动到j(目标柱),再把n-1个盘子从6-i-j(另一根柱)移动到j(目标柱)
···
# 三个柱子的编号为1,2,3,其和为6,i表示原柱,j表示目标柱,则6-i-j表示另一根柱子
def hanoi(n, i, j):
# 将n-1个环从i到n-i-j上
if n != 1:
hanoi(n - 1, i, 6 - i - j)
# 将第n个环从i移动到j上
print("Move {} from {} to {}".format(n, i, j))
# 将前n-1个环从6-i-j移动到j上
if n != 1:
hanoi(n - 1, 6 - i - j, j)
num = int(input())
hanoi(num, 1, 3)