hola a todos, llevo tres dias tratando de entender un metodo recursivo, el del juego de las torres de hanoi que es muy comun encontrarla para los ejemplos de metodos recursivos(trata de un numero de discos ingresados por teclado con los cuales se muestra por pantalla los movimientos a seguir uno por uno EJm: "Mover disco A a C...", siendo las tres torres:(A, B y C) ), me considero bueno para la logica pero cuando se trata de dos llamados o mas, de un metodo dentro del mismo se me dificulta comprenderlo, agradesco al que me explice el recorrido que hace dicho metodo o me recomiende una buena pagina donde expliquen este tipo de recursividad en profundidad.. grax.. este el codigo:
Código PHP:
public class Recursividad_Torre_De_Hanoi {
private static int movimientos=0;
public static int MovimientosHanoi(int n_discos, char a,char b, char c){
if(n_discos >0){
MovimientosHanoi(n_discos-1, a,c,b);
System.out.println("mover disco de "+a+" a "+c);
movimientos++;
MovimientosHanoi(n_discos-1,b,a,c);
}
return movimientos;
}
public static void main(String[] args){
int N_discos,Movimientos;
System.out.print("Numero de discos: ");
N_discos=Leer.leerint();
Movimientos = MovimientosHanoi(N_discos,'A','B','C');
System.out.print("movientos efectuados: "+Movimientos);
}
}