miércoles, 11 de marzo de 2009

algoritmo torres hanoi

ALGORITMO RECURSIVO:
n = 0
palo A
palo B
palo C
si n = 1
imprimir "Pasar A a B"
else
Hanoi (n-1,A,C,B)
iprimir "Pasar A a B"
Hanoi (n-1,C,B,A)
fin
Procedimiento:
Hanoi (3,1,2,3)
Hanoi (1,1,2,3) ;Cambia 1 a 2
Hanoi (2,1,3,2) Cambia de 1 a 3
Hanoi (1,2,3,1) Cambia de 2 a 3
Cambia de 1 a 2 ; Cambia de 1 a 2 ; Cambia de 1 a 2
Hanoi (1,3,1,2) Cambia de 3 a 1
Hanoi (2,3,2,1) Cambia de 3 a 2 ; Cambia de 3 a 2
Hanoi (1,1,2,3) Cambia de 1 a 2CODIGO JAVA
import java.util.*;
public class Hanoi {
// move n smallest discs from one pole to another, using the temp pole
public static void hanoi (int n, String from, String temp, String to) {
if (n == 0) return;
hanoi (n-1, from, to, temp);
System.out.println("Move disc " + n + " from " + from + " to " + to);
hanoi (n-1, temp, from, to);
}
public static void muestraminuto (){
GregorianCalendar gc = new GregorianCalendar ();
System.out.println ( gc.get (Calendar.MINUTE));
System.out.println ( gc.get (Calendar.SECOND));
System.out.println ( gc.get (Calendar.MILLISECOND));
}
public static void main(String[] args) {
// int N = 3;
int N = Integer.parseInt(args[0]);
muestraminuto();
hanoi(N, "A", "B", "C");
muestraminuto();
}}

No hay comentarios:

Publicar un comentario