Torres de Hanoi - dambort/algos GitHub Wiki

Problema:

Escriba los pasos necesarios para ganar el juego llamado "Torres de Hanoi" siendo n el número de discos.

Ejemplos:

Entrada:

3

A

B

C

Salida:

Mover el disco 1 desde la barra A a la barra B

Mover el disco 2 desde la barra A a la barra C

Mover el disco 1 desde la barra B a la barra C

Mover el disco 3 desde la barra A a la barra B

Mover el disco 1 desde la barra C a la barra A

Mover el disco 2 desde la barra C a la barra B

Mover el disco 1 desde la barra A a la barra B

Idea del algoritmo:

Caso base: si la torre está formada por un solo disco, es decir, n=1. Se mueve el disco 1 desde la barra de origen a la barra de destino.

En cualquier otro caso, la tarea puede dividirse en dos partes:

  1. Se deben mover n-1 discos desde la barra de origen a la barra auxiliar.

    torresHanoi(n-1, origen, auxiliar, destino);

  2. Se deben mover n-1 discos desde la barra auxiliar a la barra de destino.

    torresHanoi(n-1, auxiliar, destino, origen);

Código:

Disponible en Torres de Hanoi

Ejemplo de uso:

Disponible en ejemplo Torres de Hanoi

Explicación animada:

En el artículo de GeeksforGeeks: Program for Tower of Hanoi

Complejidad:

La complejidad de la solución recursiva de las Torres de Hanoi es de 2(n-1).

Problemas en sitios jueces:

omegaUp: Torres De Hanoi

⚠️ **GitHub.com Fallback** ⚠️