Turnurile Din Hanoi
Click here to load reader
-
Upload
guesta1c73b -
Category
Travel
-
view
4.456 -
download
0
Transcript of Turnurile Din Hanoi
Elev: Miclăuş CristianClasa a XI-a B
Se dau 3 tije simbolizate prin a, b, c. Pe tija a se găsesc discuri de diametre diferite, aşezate în ordinea descrescătoare a diametrelor privite de jos în sus. Se cere să se mute discurile de pe tija a pe tija b, utilizând ca tijă intermediară tija c, respectând următoarele reguli:
- la fiecare pas se mută un singur disc;- nu este permis să se aşeze un disc cu diametrul
mai mare peste un disc cu diametrul mai mic.
a b c
a b
a b
Exemplul 1:
Pentru n=1 - avem un disc
cba
a b
Exemplul 2:
Pentru n=2 – avem două discuri
a b c
a c
a b
c b
Exemplul 3:
a b c
Pentru n=3 - avem trei discuri
a cb c
a b
a b
c a
c b
a b
Algoritmul de rezolvare:
Pasul 1: - mutarea a n-1 discuri de pe tija a pe tija c, utilizând ca tijă intermediară tija b;
Pasul 2: - mutarea discului rămas pe tija b;Pasul 3: - mutarea a n-1 discuri de pe tija c pe
tija b, utilizând ca tijă intermediară tija a.
Implementarea algoritmului: - n – numărul de discuri;
Exemplul : dacă se citeşte pentru n=3 atunci avem 3 discuri.
Programul:Program turnuri;Var a, b, c: char; n: integer ;Procedure Hanoi (n:integer; a, b, c:char);Begin if n=1 then writeln (a, b) else begin Hanoi (n-1, a, c, b);
writeln (a, b);Hanoi (n-1, c ,b, a);
end;End;Begin repeat write ( ‘n=‘); readln ( n); until n>0; Hanoi( n, ‘a’, ‘b’, ‘c’ );Readln;End.