?? 漢諾塔.pas
字號:
PROGRAM hanluota;
VAR
n:integer;
{任確定3個數中兩個,則自動把第三個做為中間值}
FUNCTION Q(VAR x,y:integer):integer;
VAR
i:integer;
a:ARRAY [1..3] OF integer;
BEGIN
a[1]:=1;
a[2]:=2;
a[3]:=3;
FOR i:=1 TO 3 DO IF (a[i]<>x) AND (a[i]<>y) THEN q:=a[i];
END;
{交換任意兩個數}
PROCEDURE P1(VAR x,y:integer);
VAR
temp:integer;
BEGIN
temp:=x;
x:=y;
y:=temp;
END;
{漢諾塔遞歸式}
PROCEDURE P2(x,m,n:integer);
VAR
k:integer;
BEGIN
IF x<>1 THEN
BEGIN
k:=Q(m,n);
P1(n,k);
P2(x-1,m,n);
P1(n,k);
P2(1,m,n);
P1(m,k);
P2(x-1,m,n);
END
ELSE writeln(m,'-->',n);
END;
BEGIN
write('input the number of what you want to yi dong:');
readln(n);
P2(n,1,3);
readln;
END.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -