2 lineas de código en 4 horas

11 10 2008

Si señores, eso que veis en el título es verdad, entre David y yo nos llevamos 4 horas metidos en mi casa una tarde intentando hacer el problemita de ADA de las torres de Hanoi, el cual casi no fuimos capacez de conseguir, nos liamos a escribir lineas, escribimos 7 u 8 y hacíamos bucles infinitos, escribiamos 10 o 15 y se iba pareciendo la solución, hasta que por fin David fue capaz de resolver el problema que nos propusieron para 3 discos en la torre de hanoi con unas 6 líneas de código, entonces intentamos hacerlos para 4 discos y nos dimos cuenta que nos sobraban líneas, entonces borramos unas pocas de líneas, y nos quedamos con dos líneas exactamente, las cuales son capaces de resolver las torres de Hanoi con n Discos.

Aquí os dejo todo el trabajo de 4 horas:

hanoi(n-1,inicial,fin,auxiliar);

hanoi(n-1,auxiliar,inicial,fin);

Para los que esten intentando hacer ADA les dejo exactamente el código completo:

public class TorreDeHanoi {

public static void main(String[] args) {

hanoi(10, “A”, “B”, “C”);

}

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);

}

}

}