miércoles, 22 de octubre de 2008

Problema Torres de Hanoi P1

Código que resuelve el problema de las Torres de Hanoi, para cualquier número de niveles.

Descripción:

Dada una serie de discos y tres postes: A, B y C, en el poste A se colocan n discos de diámetro diferente de tal manera que un disco de diámetro mayor siempre queda debajo de uno de diámetro menor. El objetivo es mover los discos al poste C usando B como auxiliar.

Se deben cumplir las siguientes restricciones:
  • Sólo se puede mover un disco a la vez
  • Los discos deben estar colocados siempre en uno de los postes
  • Nunca puede estar un disco mayor sobre otro menor
Solución:

private static void hanoi(int n, String inicial, String auxiliar, String fin) {
if (n > 0) {
hanoi(n-1,inicial, fin, auxiliar);
System.out.println("Mover disco " + n + " de " + inicial + " a "
+ fin);
hanoi(n-1, auxiliar,inicial, fin);
}
}

No hay comentarios: