ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Elev: Mic lăuş Cristian Clasa a XI-a B
S e dau 3 tije simbolizate  prin  a ,  b ,  c . Pe tija  a  se găsesc discuri de diametre diferite, aşezate în ordinea  des crescă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 c b a a b
Exemplul  2 : Pentru n=2 – avem do uă discuri a b c a c a b c b
Exemplul  3 : a b c Pentru n=3  -  avem trei discuri a c b 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.

More Related Content

Turnurile Din Hanoi

  • 1. Elev: Mic lăuÅŸ Cristian Clasa a XI-a B
  • 2. S e dau 3 tije simbolizate prin a , b , c . Pe tija a se găsesc discuri de diametre diferite, aÅŸezate în ordinea des crescă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
  • 3. Exemplul 1 : Pentru n= 1 - avem un disc c b a a b
  • 4. Exemplul 2 : Pentru n=2 – avem do uă discuri a b c a c a b c b
  • 5. Exemplul 3 : a b c Pentru n=3 - avem trei discuri a c b c a b a b c a c b a b
  • 6. 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 .
  • 7. Implementarea algoritmului: - n – numărul de discuri; Exemplul : dacă se citeÅŸte pentru n=3 atunci avem 3 discuri.
  • 8. 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.