五个圆盘汉诺塔移动步骤

何须强装 1个月前 已收到2个回答 举报

距离几厘米 2星

共回答了82个问题采纳率:91.2% 评论

方法/步骤

1/8

按照在《汉诺威塔四个圆盘完成攻略》中介绍的汉诺塔移动规律,点左面圆柱,拿起第一个圆盘,放到右面圆柱上。

2/8

点左面圆柱,拿起第二个圆盘,放到中间圆柱上。

3/8

点右面圆柱,拿起第一个圆盘,放到中间圆柱上。

4/8

点左面圆柱,拿起第三个圆盘,放到右面圆柱上。

5/8

将第一个圆盘和第二个圆盘,按照三个圆盘时的移动方法,放到右面圆柱上。

点左面圆柱,拿起第四个圆盘,放到中间圆柱上。

这样第五个圆盘就可以移动了。

6/8

将右面圆柱上的三个圆盘移动中间圆柱上。这样目标圆柱就被清空了。

点左面圆柱,拿起第五个圆盘,放到右面圆柱上。

7/8

剩下的移动方法就要使用四个圆盘时的移动方法。将四个圆盘所在的圆柱,当作圆柱一,将没有圆盘的圆柱当作圆柱二,将第五个圆盘所在圆柱当作圆柱三。

按照移动规律,当圆盘数是偶数时,第一个圆盘移动到偶数圆柱上。

点中间圆柱,拿起第一个圆盘,放到左面圆柱上。

8/8

当把第四个圆盘移动到第五个圆盘上面时,此时与三个圆盘时的状态一样。剩下的按照三个圆盘时的移动方法进行移动。

五个圆盘的汉诺塔游戏顺利完成。

六个圆盘以及六个以上圆盘的游戏也是这样进行。不同之处就是移动的步数增加了许多。

6小时前

2

哪些破事 4星

共回答了466个问题 评论

1.将n-1片圆盘从A移动到B上

  2.将第n片圆盘从A移动到C上

  3.将n-1片圆盘从B移动到C上

将之变为可运行的代码为:

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

第一次递归结果: A:0个  B:n-1个  C:1个

第二次递归结果: A:n-2个     B: 0个    C:2个

4小时前

9
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com