Commit | Line | Data |
---|---|---|
8723d6a9 CH |
1 | program hanoi(input,output); |
2 | const print = 0; | |
3 | DISK = 14; | |
4 | var num: array[1..3] of integer; | |
5 | ow: integer; | |
6 | cnt: integer; | |
7 | disk: integer; | |
8 | procedure mov(n,f,t : integer); | |
9 | var o: integer; | |
10 | begin | |
11 | if n = 1 then begin | |
12 | num[f] := num[f] - 1; | |
13 | num[t] := num[t] - 1; | |
14 | if print = 1 then writeln('Move ',f, ' to ', t); | |
15 | cnt := cnt + 1; | |
16 | end | |
17 | else begin | |
18 | o := 6 - (f+t); | |
19 | mov(n-1,f,o); | |
20 | mov(1,f,t); | |
21 | mov(n-1,o,t); | |
22 | end | |
23 | end; | |
24 | ||
25 | begin | |
26 | disk := DISK; | |
27 | writeln('Number: '); | |
28 | read(disk); | |
29 | num[1] := disk; | |
30 | cnt := 0; | |
31 | if print = 1 then writeln('start ',disk); | |
32 | ow := wallclock; | |
33 | mov(disk,1,3); | |
34 | writeln('For ',disk:3,' ',cnt:10,' steps, time',wallclock-ow); | |
35 | end. |