| 序号 | 标题 | 作者 | 发表时间 | 费用 | 订购数 | 操作 |
|---|
由于盘子数目比较多,小孩玩了很久都没有完成任务。于是,xiaomengxian走上前去,打开随身携带的笔记本电脑,运行了一个很久以前编写的程序。它的主要过程大致是这样的:
procedure hanoi(n:integer;from,to_,temp:integer);
begin
if n>0 then
begin
hanoi(n-1,from,temp,to_);
writeln(n,from,to_);
hanoi(n-1,temp,to_,from)
end
end;
有了xiaomengxian的帮助,小孩很快就完成了任务。他在感谢xiaomengxian的同时,又问了一个问题,想考考xiaomengxian。这个问题就是,给出一个中间状态,能否很快的说出这是第几次移动后的状态?
为了描述方便,对于每一个中间状态,我们定义序列D。其中,Di表示第i小的盘子所在的柱子编号。显然,Di=1,2,3。
下面是N=3的例子: