Haskell - Torres de Hanoi monàdiques P21949


Statement
 

pdf   zip

html

Escriviu un programa que resolgui el problema de les Torres de Hanoi.

Les torres de Hanoi és un trencaclosques o joc matemàtic. Consisteix en tres pius verticals i un nombre indeterminat de discs de mides diferents escalonades que poden inserir-se a les varetes lliscant-hi lliurement.

A l’inici, els discs estan col·locats de més gran a més petit en el primer piu formant una estructura cònica. El joc consisteix a passar tots els discs a la tercera vareta tenint en compte les regles següents:

  • Cada moviment consisteix a agafar un dels discos superiors d’una de les torres i situar-lo a una de les altres torres.
  • Els discs petits han d’estar sempre situats sobre els grans.

Entrada

L’entrada conté una línia amb quatre dades: el nombre de discos a moure i els noms dels pius (orígen, destí i auxiliar). El nombre és un natural i els noms dels pius són una paraula cadascún.

Sortida

Escriviu els moviments per moure els discos des del piu d’orígen fins al piu de destí seguint el format dels exemples. Heu de donar una solució amb el mínim nombre de moviments possibles.

Public test cases
  • Input

    3 pegA pegB pegC
    

    Output

    pegA -> pegB
    pegA -> pegC
    pegB -> pegC
    pegA -> pegB
    pegC -> pegA
    pegC -> pegB
    pegA -> pegB
    
  • Input

    2 a b c

    Output

    a -> c
    a -> b
    c -> b
    
  • Information
    Author
    Edelmira Pasarella, Jordi Petit
    Language
    Catalan
    Official solutions
    Haskell
    User solutions
    Haskell