早教吧作业答案频道 -->其他-->
汉诺塔pascalwikioi3145汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示
题目详情
汉诺塔pascal wikioi 3145
汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。
游戏中的每一步规则如下:
1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方)
2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子)
如对于n=3的情况,一个合法的移动序列式:
1 from A to C
2 from A to B
1 from C to B
3 from A to C
1 from B to A
2 from B to C
1 from A to C
给出一个数n,求出最少步数的移动序列
通过的进!!
汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。
游戏中的每一步规则如下:
1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方)
2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子)
如对于n=3的情况,一个合法的移动序列式:
1 from A to C
2 from A to B
1 from C to B
3 from A to C
1 from B to A
2 from B to C
1 from A to C
给出一个数n,求出最少步数的移动序列
通过的进!!
▼优质解答
答案和解析
var n,i,z:longint;
procedure h(n:longint;a,b,c:char);
begin
if n=1 then writeln(n,' from ',a,' to ',c)
else
begin
h(n-1,a,c,b);
writeln(n,' from ',a,' to ',c);
h(n-1,b,a,c);
end;
end;
begin
readln(n);
z:=1;
for i:=1 to n do
z:=z*2;
dec(z);
writeln(z);
h(n,'A','B','C');
end.
本程序已经AC,望采纳,也希望交个朋友,本人浙江神死魔灭
procedure h(n:longint;a,b,c:char);
begin
if n=1 then writeln(n,' from ',a,' to ',c)
else
begin
h(n-1,a,c,b);
writeln(n,' from ',a,' to ',c);
h(n-1,b,a,c);
end;
end;
begin
readln(n);
z:=1;
for i:=1 to n do
z:=z*2;
dec(z);
writeln(z);
h(n,'A','B','C');
end.
本程序已经AC,望采纳,也希望交个朋友,本人浙江神死魔灭
看了汉诺塔pascalwikioi...的网友还看了以下:
动点P到两定点A,B连线的斜率的乘积为K,求点P的轨迹方程A(a,0)B(-a,o)讨论轨迹是什么 2020-04-27 …
已知函数f(x)=a^(x+b),(a>o,a不等于1)满足f(x+y)=f(x)f(y),且f( 2020-06-03 …
半封闭式浇注系统是( )A.A直>A横>A内B.A直C.A横>A直>A内D.A横 2020-06-07 …
如图,等边三角形ABO放在平面直角坐标系中,其中点O为坐标原点,点B的坐标为(-8,0),点A位于 2020-06-08 …
s的取值范围是多少?已知过点(2,-3)的直线y=ax十b(a≠o)不经过第一象限。设s=a十2b 2020-07-22 …
在直角坐标系中,以O(0,0)为圆心,以5为半径画圆,则点A(-3,4)的位置在()A.⊙O内B. 2020-07-26 …
如图,在直角坐标系中,点A,B分别在x轴,y轴上,点A的坐标为(-1,0),∠ABO=30°,线段 2020-07-29 …
O,I分别是锐角三角形ABC的外心,内心.O',I'分别是O,I关于BC的对称点.已知A、B、O' 2020-07-30 …
(1)若关于X的方程AX2+2(A-B)X+(B-A)=O有2个相等是实数根,求A与B的比值?(2 2020-08-02 …
作一个角等于∠AOB,在射线O′A′上,以O′为圆心,以OC长为半径画弧,交O′A′于点C′,再以( 2020-12-09 …