|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
对于游戏的玩法,我们可以简单分解为三个步骤:
-将前63个盘子从x移动到y上。
-将最底下的第64个盘子从x移动到Z上
-将y上的63个盘子移动到Z上
问题一:将X上的63个盘子借助Z移动到Y上。
问题二:将Y上的63个盘子借助X移动到Z上。
-问题一(“将X上的63个盘子借助Z移动到Y上。”)拆解为:
- 将前62个盘子从X移动到Z上。
-将最底下的第63个盘子移动到Y上
-将Z上的62个盘子移动到Y上
-问题二(将Y上的63个盘子借助X移动到Z上。)拆解为:
- 将前62个盘子从Y移动到X上,
-将最底下的第63个盘子移动到Z上。
- 将x上的62个盘子移动到Y上。
程序实现:
def hanoi(n,x,y,z):
if n==1:
print(x,'--->',z)
else:
hanoi(n-1,x,z,y) #将前n-1个盘子从x移动到y上
print(x,'--->',z)#将最底下的最后一个盘子从x移动到z上
hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
n=int(input('请输入汉诺塔的层数:'))
hanoi(n,'x','y','z')
|
|