HBC14968N阶汉诺塔变形题解

为你而来永不停止 算法基础篇 93 0
挑战自我,勇攀编程高峰!全网最全C++题库,助您成为编程达人。
从大到小输出三个塔座上的圆盘的编号, 比如,塔座A上有圆盘1,3;塔座B上有圆盘2;塔座C上有圆盘4,我们将输出: 3 1 2 4

    相信大家都知道汉诺塔问题。那么现在对汉诺塔问题做一些限制,成为一个新的玩法。     在一个底座上,从左到右有三个分别命名为A、B和C的塔座,有n个大小不一的圆盘。这些圆盘一开始,从小到大按顺序叠加在塔座A上,形成一座上小下大的塔,塔座B和C为空。我们将n个圆盘,从小到大编号为1~n。现要求将塔座A上的n个圆盘移至塔座C上并仍按照同样的顺序叠排,圆盘移动时必须遵循以下规则:     (1)每次只能将一个圆盘从一个塔座移动到相邻的塔座上     (2)所有圆盘可以叠在A、B和C中的任一塔座上     (3)任何时刻都不能将一个较大的圆盘压在较小的圆盘上面     那么问题来了,对于一个n阶(阶数即是问题中圆盘的个数)的上述问题,用最少操作次数将圆盘塔从塔座A移动到塔座C的操作总是固定的。请问,n阶问题执行k步操作后,塔座A、B和C上圆盘的情况是怎样的?从大到小输出三个塔座上的圆盘的编号(如果该塔座上没有圆盘,请输出0)。 比如,塔座A上有圆盘1,3;塔座B上有圆盘2;塔座C上有圆盘4。我们将输出: 3 1 2 4

HBC14968N阶汉诺塔变形题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
成为编程大师,不再是梦想!全网最全C++题库,助您开启编程新篇章。

标签: HBC14968N阶汉诺塔变形题解