汉诺塔的移动可以用递归函数非常简单地实现。

请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法,例如:


#首先引入递归函数的思想,在汉诺塔大柱子必须在下规则的基础上,把整个过程看作是三个主要步骤(将n-1个环看作是一个整体):
#1 把n-1个环从A柱放在B柱子上: move(n-1, a, c, b)
#2 把最大的环从A柱放在C柱子上: move(1,a,b,c)
#3 把n-1个环再从B柱子上转移到C柱子上: move(n-1,b,a,c)

# -*- coding: utf-8 -*- def move(n, a, b, c):
if n == 1:
print(a,"-->",c)
else:
move(n-1, a, c, b) 
move(1,a,b,c) 
move(n-1,b,a,c)

汉诺塔模型

原文地址:https://www.cnblogs.com/cccmon/p/7878583.html